algebra.module.linear_mapMathlib.Algebra.Module.LinearMap.Basic

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

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

docs(algebra/module/linear_map): Fix a copy/paste error (#18389)
Diff
@@ -708,7 +708,7 @@ include σ₁₃
 ext $ λ _, g.map_neg _
 omit σ₁₃
 
-/-- The negation of a linear map is linear. -/
+/-- The subtraction of two linear maps is linear. -/
 instance : has_sub (M →ₛₗ[σ₁₂] N₂) :=
 ⟨λ f g, { to_fun := f - g,
           map_add' := λ x y, by simp only [pi.sub_apply, map_add, add_sub_add_comm],

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -412,9 +412,10 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
 #align image_smul_setₛₗ image_smul_setₛₗ
 -/
 
-#print preimage_smul_setₛₗ /-
-theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
-    h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
+#print preimage_smul_setₛₗ_of_units /-
+theorem preimage_smul_setₛₗ_of_units [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c)
+    (s : Set M₃) : h ⁻¹' (σ c • s) = c • h ⁻¹' s :=
+  by
   apply Set.Subset.antisymm
   · rintro x ⟨y, ys, hy⟩
     refine' ⟨(hc.unit.inv : R) • x, _, _⟩
@@ -424,7 +425,7 @@ theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : I
     · simp only [smul_smul, IsUnit.mul_val_inv, one_smul, Units.inv_eq_val_inv]
   · rintro x ⟨y, hy, rfl⟩
     refine' ⟨h y, hy, by simp only [RingHom.id_apply, map_smulₛₗ h]⟩
-#align preimage_smul_setₛₗ preimage_smul_setₛₗ
+#align preimage_smul_setₛₗ preimage_smul_setₛₗ_of_units
 -/
 
 variable (R M₂)
@@ -438,7 +439,7 @@ theorem image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) : h '' (c
 #print preimage_smul_set /-
 theorem preimage_smul_set [LinearMapClass F R M M₂] {c : R} (hc : IsUnit c) (s : Set M₂) :
     h ⁻¹' (c • s) = c • h ⁻¹' s :=
-  preimage_smul_setₛₗ _ _ _ h hc s
+  preimage_smul_setₛₗ_of_units _ _ _ h hc s
 #align preimage_smul_set preimage_smul_set
 -/
 
Diff
@@ -4,10 +4,10 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne Baanen,
   Frédéric Dupuis, Heather Macbeth
 -/
-import Algebra.Hom.GroupAction
+import GroupTheory.GroupAction.Hom
 import Algebra.Module.Pi
 import Algebra.Star.Basic
-import Data.Set.Pointwise.Smul
+import Data.Set.Pointwise.SMul
 import Algebra.Ring.CompTypeclasses
 
 #align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
@@ -171,7 +171,7 @@ instance (priority := 100) [SemilinearMapClass F σ M M₃] : AddMonoidHomClass
 
 -- `R` is an `out_param` so it's not dangerous
 @[nolint dangerous_instance]
-instance (priority := 100) [LinearMapClass F R M M₂] : DistribMulActionHomClass F R M M₂ :=
+instance (priority := 100) [LinearMapClass F R M M₂] : DistribMulActionSemiHomClass F R M M₂ :=
   {
     SemilinearMapClass.addMonoidHomClass
       F with
@@ -745,7 +745,7 @@ instance : Coe (M →+[R] M₂) (M →ₗ[R] M₂) :=
 @[simp]
 theorem toLinearMap_eq_coe (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
   rfl
-#align distrib_mul_action_hom.to_linear_map_eq_coe DistribMulActionHom.toLinearMap_eq_coe
+#align distrib_mul_action_hom.to_linear_map_eq_coe DistribMulActionHomₓ.toLinearMap_eq_coe
 
 #print DistribMulActionHom.coe_toLinearMap /-
 @[simp, norm_cast]
@@ -1272,7 +1272,7 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
   { Module.End.semiring,
     LinearMap.addCommGroup with
     intCast := fun z => z • 1
-    intCast_ofNat := coe_nat_zsmul _
+    intCast_ofNat := natCast_zsmul _
     intCast_negSucc := negSucc_zsmul _ }
 #align module.End.ring Module.End.ring
 -/
Diff
@@ -659,7 +659,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMon
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
     (f : M →ₛₗ[σ] M₂) (g : M₂ → M) (h₁ : LeftInverse g f) (h₂ : RightInverse g f) : M₂ →ₛₗ[σ'] M :=
   by
-  dsimp [left_inverse, Function.RightInverse] at h₁ h₂  <;>
+  dsimp [left_inverse, Function.RightInverse] at h₁ h₂ <;>
     exact
       { toFun := g
         map_add' := fun x y => by rw [← h₁ (g (x + y)), ← h₁ (g x + g y)] <;> simp [h₂]
Diff
@@ -1272,7 +1272,7 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
   { Module.End.semiring,
     LinearMap.addCommGroup with
     intCast := fun z => z • 1
-    intCast_ofNat := ofNat_zsmul _
+    intCast_ofNat := coe_nat_zsmul _
     intCast_negSucc := negSucc_zsmul _ }
 #align module.End.ring Module.End.ring
 -/
Diff
@@ -234,7 +234,7 @@ theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
 #print LinearMap.ext /-
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
-  FunLike.ext f g h
+  DFunLike.ext f g h
 #align linear_map.ext LinearMap.ext
 -/
 
@@ -258,7 +258,7 @@ theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) :
 
 #print LinearMap.copy_eq /-
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align linear_map.copy_eq LinearMap.copy_eq
 -/
 
@@ -322,26 +322,26 @@ variable {fₗ gₗ f g σ}
 
 #print LinearMap.coe_injective /-
 theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
-  FunLike.coe_injective
+  DFunLike.coe_injective
 #align linear_map.coe_injective LinearMap.coe_injective
 -/
 
 #print LinearMap.congr_arg /-
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
-  FunLike.congr_arg f
+  DFunLike.congr_arg f
 #align linear_map.congr_arg LinearMap.congr_arg
 -/
 
 #print LinearMap.congr_fun /-
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
-  FunLike.congr_fun h x
+  DFunLike.congr_fun h x
 #align linear_map.congr_fun LinearMap.congr_fun
 -/
 
 #print LinearMap.ext_iff /-
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align linear_map.ext_iff LinearMap.ext_iff
 -/
 
@@ -1051,7 +1051,7 @@ theorem comp_add (f g : M →ₛₗ[σ₁₂] M₂) (h : M₂ →ₛₗ[σ₂₃
 
 /-- The type of linear maps is an additive monoid. -/
 instance : AddCommMonoid (M →ₛₗ[σ₁₂] M₂) :=
-  FunLike.coe_injective.AddCommMonoid _ rfl (fun _ _ => rfl) fun _ _ => rfl
+  DFunLike.coe_injective.AddCommMonoid _ rfl (fun _ _ => rfl) fun _ _ => rfl
 
 /-- The negation of a linear map is linear. -/
 instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
@@ -1111,7 +1111,7 @@ theorem comp_sub (f g : M →ₛₗ[σ₁₂] N₂) (h : N₂ →ₛₗ[σ₂₃
 
 /-- The type of linear maps is an additive group. -/
 instance : AddCommGroup (M →ₛₗ[σ₁₂] N₂) :=
-  FunLike.coe_injective.AddCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
+  DFunLike.coe_injective.AddCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
     (fun _ _ => rfl) fun _ _ => rfl
 
 end Arithmetic
Diff
@@ -4,11 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne Baanen,
   Frédéric Dupuis, Heather Macbeth
 -/
-import Mathbin.Algebra.Hom.GroupAction
-import Mathbin.Algebra.Module.Pi
-import Mathbin.Algebra.Star.Basic
-import Mathbin.Data.Set.Pointwise.Smul
-import Mathbin.Algebra.Ring.CompTypeclasses
+import Algebra.Hom.GroupAction
+import Algebra.Module.Pi
+import Algebra.Star.Basic
+import Data.Set.Pointwise.Smul
+import Algebra.Ring.CompTypeclasses
 
 #align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
 
Diff
@@ -578,7 +578,7 @@ end
 def RingHom.toSemilinearMap (f : R →+* S) : R →ₛₗ[f] S :=
   { f with
     toFun := f
-    map_smul' := f.map_mul }
+    map_smul' := f.map_hMul }
 #align ring_hom.to_semilinear_map RingHom.toSemilinearMap
 -/
 
@@ -800,7 +800,7 @@ theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Modu
 #print IsLinearMap.isLinearMap_smul' /-
 theorem isLinearMap_smul' {R M : Type _} [Semiring R] [AddCommMonoid M] [Module R M] (a : M) :
     IsLinearMap R fun c : R => c • a :=
-  IsLinearMap.mk (fun x y => add_smul x y a) fun x y => mul_smul x y a
+  IsLinearMap.mk (fun x y => add_smul x y a) fun x y => hMul_smul x y a
 #align is_linear_map.is_linear_map_smul' IsLinearMap.isLinearMap_smul'
 -/
 
@@ -1137,7 +1137,7 @@ variable [Monoid T] [DistribMulAction T M₂] [SMulCommClass R₂ T M₂]
 instance : DistribMulAction S (M →ₛₗ[σ₁₂] M₂)
     where
   one_smul f := ext fun _ => one_smul _ _
-  mul_smul c c' f := ext fun _ => mul_smul _ _ _
+  hMul_smul c c' f := ext fun _ => hMul_smul _ _ _
   smul_add c f g := ext fun x => smul_add _ _ _
   smul_zero c := ext fun x => smul_zero _
 
@@ -1326,7 +1326,7 @@ instance applyModule : Module (Module.End R M) M
   add_smul := LinearMap.add_apply
   zero_smul := (LinearMap.zero_apply : ∀ m, (0 : M →ₗ[R] M) m = 0)
   one_smul _ := rfl
-  mul_smul _ _ _ := rfl
+  hMul_smul _ _ _ := rfl
 #align linear_map.apply_module LinearMap.applyModule
 -/
 
@@ -1397,7 +1397,7 @@ def toModuleEnd : S →* Module.End R M
     where
   toFun := toLinearMap R M
   map_one' := LinearMap.ext <| one_smul _
-  map_mul' a b := LinearMap.ext <| mul_smul _ _
+  map_mul' a b := LinearMap.ext <| hMul_smul _ _
 #align distrib_mul_action.to_module_End DistribMulAction.toModuleEnd
 -/
 
Diff
@@ -3,11 +3,6 @@ Copyright (c) 2020 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne Baanen,
   Frédéric Dupuis, Heather Macbeth
-
-! This file was ported from Lean 3 source module algebra.module.linear_map
-! leanprover-community/mathlib commit cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Hom.GroupAction
 import Mathbin.Algebra.Module.Pi
@@ -15,6 +10,8 @@ import Mathbin.Algebra.Star.Basic
 import Mathbin.Data.Set.Pointwise.Smul
 import Mathbin.Algebra.Ring.CompTypeclasses
 
+#align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
+
 /-!
 # (Semi)linear maps
 
Diff
@@ -108,13 +108,10 @@ structure LinearMap {R : Type _} {S : Type _} [Semiring R] [Semiring S] (σ : R
 /-- The `add_hom` underlying a `linear_map`. -/
 add_decl_doc LinearMap.toAddHom
 
--- mathport name: «expr →ₛₗ[ ] »
 notation:25 M " →ₛₗ[" σ:25 "] " M₂:0 => LinearMap σ M M₂
 
--- mathport name: «expr →ₗ[ ] »
 notation:25 M " →ₗ[" R:25 "] " M₂:0 => LinearMap (RingHom.id R) M M₂
 
--- mathport name: «expr →ₗ⋆[ ] »
 notation:25 M " →ₗ⋆[" R:25 "] " M₂:0 => LinearMap (starRingEnd R) M M₂
 
 #print SemilinearMapClass /-
@@ -186,11 +183,11 @@ instance (priority := 100) [LinearMapClass F R M M₂] : DistribMulActionHomClas
 
 variable {F} (f : F) [i : SemilinearMapClass F σ M M₃]
 
-include i
-
+#print SemilinearMapClass.map_smul_inv /-
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
 #align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_inv
+-/
 
 end SemilinearMapClass
 
@@ -230,16 +227,21 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 #align linear_map.to_distrib_mul_action_hom LinearMap.toDistribMulActionHom
 -/
 
+#print LinearMap.toFun_eq_coe /-
 @[simp]
 theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
   rfl
 #align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coe
+-/
 
+#print LinearMap.ext /-
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
   FunLike.ext f g h
 #align linear_map.ext LinearMap.ext
+-/
 
+#print LinearMap.copy /-
 /-- Copy of a `linear_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
 protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : M →ₛₗ[σ] M₃
@@ -248,15 +250,20 @@ protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f)
   map_add' := h.symm ▸ f.map_add'
   map_smul' := h.symm ▸ f.map_smul'
 #align linear_map.copy LinearMap.copy
+-/
 
+#print LinearMap.coe_copy /-
 @[simp]
 theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : ⇑(f.copy f' h) = f' :=
   rfl
 #align linear_map.coe_copy LinearMap.coe_copy
+-/
 
+#print LinearMap.copy_eq /-
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
   FunLike.ext' h
 #align linear_map.copy_eq LinearMap.copy_eq
+-/
 
 /-- See Note [custom simps projection]. -/
 protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+* S) (M M₃ : Type _)
@@ -266,11 +273,13 @@ protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+*
 
 initialize_simps_projections LinearMap (toFun → apply)
 
+#print LinearMap.coe_mk /-
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
     ((LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) : M → M₃) = f :=
   rfl
 #align linear_map.coe_mk LinearMap.coe_mk
+-/
 
 #print LinearMap.id /-
 /-- Identity map as a `linear_map` -/
@@ -279,14 +288,18 @@ def id : M →ₗ[R] M :=
 #align linear_map.id LinearMap.id
 -/
 
+#print LinearMap.id_apply /-
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
   rfl
 #align linear_map.id_apply LinearMap.id_apply
+-/
 
+#print LinearMap.id_coe /-
 @[simp, norm_cast]
 theorem id_coe : ((LinearMap.id : M →ₗ[R] M) : M → M) = id :=
   rfl
 #align linear_map.id_coe LinearMap.id_coe
+-/
 
 end
 
@@ -302,63 +315,87 @@ variable (σ : R →+* S)
 
 variable (fₗ gₗ : M →ₗ[R] M₂) (f g : M →ₛₗ[σ] M₃)
 
+#print LinearMap.isLinear /-
 theorem isLinear : IsLinearMap R fₗ :=
   ⟨fₗ.map_add', fₗ.map_smul'⟩
 #align linear_map.is_linear LinearMap.isLinear
+-/
 
 variable {fₗ gₗ f g σ}
 
+#print LinearMap.coe_injective /-
 theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
   FunLike.coe_injective
 #align linear_map.coe_injective LinearMap.coe_injective
+-/
 
+#print LinearMap.congr_arg /-
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
   FunLike.congr_arg f
 #align linear_map.congr_arg LinearMap.congr_arg
+-/
 
+#print LinearMap.congr_fun /-
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
   FunLike.congr_fun h x
 #align linear_map.congr_fun LinearMap.congr_fun
+-/
 
+#print LinearMap.ext_iff /-
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align linear_map.ext_iff LinearMap.ext_iff
+-/
 
+#print LinearMap.mk_coe /-
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
   ext fun _ => rfl
 #align linear_map.mk_coe LinearMap.mk_coe
+-/
 
 variable (fₗ gₗ f g)
 
+#print LinearMap.map_add /-
 protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
   map_add f x y
 #align linear_map.map_add LinearMap.map_add
+-/
 
+#print LinearMap.map_zero /-
 protected theorem map_zero : f 0 = 0 :=
   map_zero f
 #align linear_map.map_zero LinearMap.map_zero
+-/
 
+#print LinearMap.map_smulₛₗ /-
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
 protected theorem map_smulₛₗ (c : R) (x : M) : f (c • x) = σ c • f x :=
   map_smulₛₗ f c x
 #align linear_map.map_smulₛₗ LinearMap.map_smulₛₗ
+-/
 
+#print LinearMap.map_smul /-
 protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
   map_smul fₗ c x
 #align linear_map.map_smul LinearMap.map_smul
+-/
 
+#print LinearMap.map_smul_inv /-
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
 #align linear_map.map_smul_inv LinearMap.map_smul_inv
+-/
 
+#print LinearMap.map_eq_zero_iff /-
 -- TODO: generalize to `zero_hom_class`
 @[simp]
 theorem map_eq_zero_iff (h : Function.Injective f) {x : M} : f x = 0 ↔ x = 0 :=
   ⟨fun w => by apply h; simp [w], fun w => by subst w; simp⟩
 #align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iff
+-/
 
 section Pointwise
 
@@ -366,6 +403,7 @@ open scoped Pointwise
 
 variable (M M₃ σ) {F : Type _} (h : F)
 
+#print image_smul_setₛₗ /-
 @[simp]
 theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
     h '' (c • s) = σ c • h '' s := by
@@ -375,7 +413,9 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
   · rintro x ⟨y, ⟨z, hz, rfl⟩, rfl⟩
     exact (Set.mem_image _ _ _).2 ⟨c • z, Set.smul_mem_smul_set hz, map_smulₛₗ _ _ _⟩
 #align image_smul_setₛₗ image_smul_setₛₗ
+-/
 
+#print preimage_smul_setₛₗ /-
 theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
     h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
   apply Set.Subset.antisymm
@@ -388,17 +428,22 @@ theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : I
   · rintro x ⟨y, hy, rfl⟩
     refine' ⟨h y, hy, by simp only [RingHom.id_apply, map_smulₛₗ h]⟩
 #align preimage_smul_setₛₗ preimage_smul_setₛₗ
+-/
 
 variable (R M₂)
 
+#print image_smul_set /-
 theorem image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) : h '' (c • s) = c • h '' s :=
   image_smul_setₛₗ _ _ _ h c s
 #align image_smul_set image_smul_set
+-/
 
+#print preimage_smul_set /-
 theorem preimage_smul_set [LinearMapClass F R M M₂] {c : R} (hc : IsUnit c) (s : Set M₂) :
     h ⁻¹' (c • s) = c • h ⁻¹' s :=
   preimage_smul_setₛₗ _ _ _ h hc s
 #align preimage_smul_set preimage_smul_set
+-/
 
 end Pointwise
 
@@ -426,12 +471,14 @@ instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring
 #align linear_map.is_scalar_tower.compatible_smul LinearMap.IsScalarTower.compatibleSMul
 -/
 
+#print LinearMap.map_smul_of_tower /-
 @[simp]
 theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
     [Module S M₂] [CompatibleSMul M M₂ R S] (fₗ : M →ₗ[S] M₂) (c : R) (x : M) :
     fₗ (c • x) = c • fₗ x :=
   CompatibleSMul.map_smul fₗ c x
 #align linear_map.map_smul_of_tower LinearMap.map_smul_of_tower
+-/
 
 #print LinearMap.toAddMonoidHom /-
 /-- convert a linear map to an additive map -/
@@ -442,10 +489,12 @@ def toAddMonoidHom : M →+ M₃ where
 #align linear_map.to_add_monoid_hom LinearMap.toAddMonoidHom
 -/
 
+#print LinearMap.toAddMonoidHom_coe /-
 @[simp]
 theorem toAddMonoidHom_coe : ⇑f.toAddMonoidHom = f :=
   rfl
 #align linear_map.to_add_monoid_hom_coe LinearMap.toAddMonoidHom_coe
+-/
 
 section RestrictScalars
 
@@ -465,48 +514,64 @@ def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
 #align linear_map.restrict_scalars LinearMap.restrictScalars
 -/
 
+#print LinearMap.coe_restrictScalars /-
 @[simp]
 theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
   rfl
 #align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalars
+-/
 
+#print LinearMap.restrictScalars_apply /-
 theorem restrictScalars_apply (fₗ : M →ₗ[S] M₂) (x) : restrictScalars R fₗ x = fₗ x :=
   rfl
 #align linear_map.restrict_scalars_apply LinearMap.restrictScalars_apply
+-/
 
+#print LinearMap.restrictScalars_injective /-
 theorem restrictScalars_injective :
     Function.Injective (restrictScalars R : (M →ₗ[S] M₂) → M →ₗ[R] M₂) := fun fₗ gₗ h =>
   ext (LinearMap.congr_fun h : _)
 #align linear_map.restrict_scalars_injective LinearMap.restrictScalars_injective
+-/
 
+#print LinearMap.restrictScalars_inj /-
 @[simp]
 theorem restrictScalars_inj (fₗ gₗ : M →ₗ[S] M₂) :
     fₗ.restrictScalars R = gₗ.restrictScalars R ↔ fₗ = gₗ :=
   (restrictScalars_injective R).eq_iff
 #align linear_map.restrict_scalars_inj LinearMap.restrictScalars_inj
+-/
 
 end RestrictScalars
 
 variable {R}
 
+#print LinearMap.toAddMonoidHom_injective /-
 theorem toAddMonoidHom_injective : Function.Injective (toAddMonoidHom : (M →ₛₗ[σ] M₃) → M →+ M₃) :=
   fun f g h => ext <| AddMonoidHom.congr_fun h
 #align linear_map.to_add_monoid_hom_injective LinearMap.toAddMonoidHom_injective
+-/
 
+#print LinearMap.ext_ring /-
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
 @[ext]
 theorem ext_ring {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
   ext fun x => by rw [← mul_one x, ← smul_eq_mul, f.map_smulₛₗ, g.map_smulₛₗ, h]
 #align linear_map.ext_ring LinearMap.ext_ring
+-/
 
+#print LinearMap.ext_ring_iff /-
 theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
 #align linear_map.ext_ring_iff LinearMap.ext_ring_iff
+-/
 
+#print LinearMap.ext_ring_op /-
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
   ext fun x => by rw [← one_mul x, ← op_smul_eq_mul, f.map_smulₛₗ, g.map_smulₛₗ, h]
 #align linear_map.ext_ring_op LinearMap.ext_ring_op
+-/
 
 end
 
@@ -534,8 +599,6 @@ variable [RingHomCompTriple σ₁₂ σ₂₃ σ₁₃]
 
 variable (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂)
 
-include module_M₁ module_M₂ module_M₃
-
 #print LinearMap.comp /-
 /-- Composition of two linear maps is a linear map -/
 def comp : M₁ →ₛₗ[σ₁₃] M₃ where
@@ -545,58 +608,56 @@ def comp : M₁ →ₛₗ[σ₁₃] M₃ where
 #align linear_map.comp LinearMap.comp
 -/
 
-omit module_M₁ module_M₂ module_M₃
-
--- mathport name: «expr ∘ₗ »
 infixr:80 " ∘ₗ " =>
   @LinearMap.comp _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (RingHom.id _) (RingHom.id _) (RingHom.id _)
     RingHomCompTriple.ids
 
-include σ₁₃
-
+#print LinearMap.comp_apply /-
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
 #align linear_map.comp_apply LinearMap.comp_apply
+-/
 
-omit σ₁₃
-
-include σ₁₃
-
+#print LinearMap.coe_comp /-
 @[simp, norm_cast]
 theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
   rfl
 #align linear_map.coe_comp LinearMap.coe_comp
+-/
 
-omit σ₁₃
-
+#print LinearMap.comp_id /-
 @[simp]
 theorem comp_id : f.comp id = f :=
   LinearMap.ext fun x => rfl
 #align linear_map.comp_id LinearMap.comp_id
+-/
 
+#print LinearMap.id_comp /-
 @[simp]
 theorem id_comp : id.comp f = f :=
   LinearMap.ext fun x => rfl
 #align linear_map.id_comp LinearMap.id_comp
+-/
 
 variable {f g} {f' : M₂ →ₛₗ[σ₂₃] M₃} {g' : M₁ →ₛₗ[σ₁₂] M₂}
 
-include σ₁₃
-
+#print LinearMap.cancel_right /-
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h => ext <| hg.forall.2 (ext_iff.1 h), fun h => h ▸ rfl⟩
 #align linear_map.cancel_right LinearMap.cancel_right
+-/
 
+#print LinearMap.cancel_left /-
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h => ext fun x => hf <| by rw [← comp_apply, h, comp_apply], fun h => h ▸ rfl⟩
 #align linear_map.cancel_left LinearMap.cancel_left
-
-omit σ₁₃
+-/
 
 end
 
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
 
+#print LinearMap.inverse /-
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
     (f : M →ₛₗ[σ] M₂) (g : M₂ → M) (h₁ : LeftInverse g f) (h₂ : RightInverse g f) : M₂ →ₛₗ[σ'] M :=
@@ -607,6 +668,7 @@ def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [Rin
         map_add' := fun x y => by rw [← h₁ (g (x + y)), ← h₁ (g x + g y)] <;> simp [h₂]
         map_smul' := fun a b => by rw [← h₁ (g (a • b)), ← h₁ (σ' a • g b)]; simp [h₂] }
 #align linear_map.inverse LinearMap.inverse
+-/
 
 end AddCommMonoid
 
@@ -618,13 +680,17 @@ variable {module_M : Module R M} {module_M₂ : Module S M₂} {σ : R →+* S}
 
 variable (f : M →ₛₗ[σ] M₂)
 
+#print LinearMap.map_neg /-
 protected theorem map_neg (x : M) : f (-x) = -f x :=
   map_neg f x
 #align linear_map.map_neg LinearMap.map_neg
+-/
 
+#print LinearMap.map_sub /-
 protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
 #align linear_map.map_sub LinearMap.map_sub
+-/
 
 #print LinearMap.CompatibleSMul.intModule /-
 instance CompatibleSMul.intModule {S : Type _} [Semiring S] [Module S M] [Module S M₂] :
@@ -684,14 +750,18 @@ theorem toLinearMap_eq_coe (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
   rfl
 #align distrib_mul_action_hom.to_linear_map_eq_coe DistribMulActionHom.toLinearMap_eq_coe
 
+#print DistribMulActionHom.coe_toLinearMap /-
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
   rfl
 #align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMap
+-/
 
+#print DistribMulActionHom.toLinearMap_injective /-
 theorem toLinearMap_injective {f g : M →+[R] M₂} (h : (f : M →ₗ[R] M₂) = (g : M →ₗ[R] M₂)) :
     f = g := by ext m; exact LinearMap.congr_fun h m
 #align distrib_mul_action_hom.to_linear_map_injective DistribMulActionHom.toLinearMap_injective
+-/
 
 end DistribMulActionHom
 
@@ -703,8 +773,6 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
-include R
-
 #print IsLinearMap.mk' /-
 /-- Convert an `is_linear_map` predicate to a `linear_map` -/
 def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
@@ -715,11 +783,14 @@ def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
 #align is_linear_map.mk' IsLinearMap.mk'
 -/
 
+#print IsLinearMap.mk'_apply /-
 @[simp]
 theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f x :=
   rfl
 #align is_linear_map.mk'_apply IsLinearMap.mk'_apply
+-/
 
+#print IsLinearMap.isLinearMap_smul /-
 theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Module R M] (c : R) :
     IsLinearMap R fun z : M => c • z :=
   by
@@ -727,19 +798,22 @@ theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Modu
   intro _ _
   simp only [smul_smul, mul_comm]
 #align is_linear_map.is_linear_map_smul IsLinearMap.isLinearMap_smul
+-/
 
+#print IsLinearMap.isLinearMap_smul' /-
 theorem isLinearMap_smul' {R M : Type _} [Semiring R] [AddCommMonoid M] [Module R M] (a : M) :
     IsLinearMap R fun c : R => c • a :=
   IsLinearMap.mk (fun x y => add_smul x y a) fun x y => mul_smul x y a
 #align is_linear_map.is_linear_map_smul' IsLinearMap.isLinearMap_smul'
+-/
 
 variable {f : M → M₂} (lin : IsLinearMap R f)
 
-include M M₂ lin
-
+#print IsLinearMap.map_zero /-
 theorem map_zero : f (0 : M) = (0 : M₂) :=
   (lin.mk' f).map_zero
 #align is_linear_map.map_zero IsLinearMap.map_zero
+-/
 
 end AddCommMonoid
 
@@ -749,23 +823,25 @@ variable [Semiring R] [AddCommGroup M] [AddCommGroup M₂]
 
 variable [Module R M] [Module R M₂]
 
-include R
-
+#print IsLinearMap.isLinearMap_neg /-
 theorem isLinearMap_neg : IsLinearMap R fun z : M => -z :=
   IsLinearMap.mk neg_add fun x y => (smul_neg x y).symm
 #align is_linear_map.is_linear_map_neg IsLinearMap.isLinearMap_neg
+-/
 
 variable {f : M → M₂} (lin : IsLinearMap R f)
 
-include M M₂ lin
-
+#print IsLinearMap.map_neg /-
 theorem map_neg (x : M) : f (-x) = -f x :=
   (lin.mk' f).map_neg x
 #align is_linear_map.map_neg IsLinearMap.map_neg
+-/
 
+#print IsLinearMap.map_sub /-
 theorem map_sub (x y) : f (x - y) = f x - f y :=
   (lin.mk' f).map_sub x y
 #align is_linear_map.map_sub IsLinearMap.map_sub
+-/
 
 end AddCommGroup
 
@@ -789,11 +865,14 @@ def AddMonoidHom.toNatLinearMap [AddCommMonoid M] [AddCommMonoid M₂] (f : M 
 #align add_monoid_hom.to_nat_linear_map AddMonoidHom.toNatLinearMap
 -/
 
+#print AddMonoidHom.toNatLinearMap_injective /-
 theorem AddMonoidHom.toNatLinearMap_injective [AddCommMonoid M] [AddCommMonoid M₂] :
     Function.Injective (@AddMonoidHom.toNatLinearMap M M₂ _ _) := by intro f g h; ext;
   exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_nat_linear_map_injective AddMonoidHom.toNatLinearMap_injective
+-/
 
+#print AddMonoidHom.toIntLinearMap /-
 /-- Reinterpret an additive homomorphism as a `ℤ`-linear map. -/
 def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) : M →ₗ[ℤ] M₂
     where
@@ -801,17 +880,22 @@ def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+
   map_add' := f.map_add
   map_smul' := map_zsmul f
 #align add_monoid_hom.to_int_linear_map AddMonoidHom.toIntLinearMap
+-/
 
+#print AddMonoidHom.toIntLinearMap_injective /-
 theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M₂] :
     Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) := by intro f g h; ext;
   exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_int_linear_map_injective AddMonoidHom.toIntLinearMap_injective
+-/
 
+#print AddMonoidHom.coe_toIntLinearMap /-
 @[simp]
 theorem AddMonoidHom.coe_toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) :
     ⇑f.toIntLinearMap = f :=
   rfl
 #align add_monoid_hom.coe_to_int_linear_map AddMonoidHom.coe_toIntLinearMap
+-/
 
 #print AddMonoidHom.toRatLinearMap /-
 /-- Reinterpret an additive homomorphism as a `ℚ`-linear map. -/
@@ -821,16 +905,20 @@ def AddMonoidHom.toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M
 #align add_monoid_hom.to_rat_linear_map AddMonoidHom.toRatLinearMap
 -/
 
+#print AddMonoidHom.toRatLinearMap_injective /-
 theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
     [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) := by
   intro f g h; ext; exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_rat_linear_map_injective AddMonoidHom.toRatLinearMap_injective
+-/
 
+#print AddMonoidHom.coe_toRatLinearMap /-
 @[simp]
 theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
     [Module ℚ M₂] (f : M →+ M₂) : ⇑f.toRatLinearMap = f :=
   rfl
 #align add_monoid_hom.coe_to_rat_linear_map AddMonoidHom.coe_toRatLinearMap
+-/
 
 namespace LinearMap
 
@@ -856,14 +944,18 @@ instance : SMul S (M →ₛₗ[σ₁₂] M₂) :=
       map_add' := fun x y => by simp only [Pi.smul_apply, f.map_add, smul_add]
       map_smul' := fun c x => by simp [Pi.smul_apply, smul_comm (σ₁₂ c)] }⟩
 
+#print LinearMap.smul_apply /-
 @[simp]
 theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f) x = a • f x :=
   rfl
 #align linear_map.smul_apply LinearMap.smul_apply
+-/
 
+#print LinearMap.coe_smul /-
 theorem coe_smul (a : S) (f : M →ₛₗ[σ₁₂] M₂) : ⇑(a • f) = a • f :=
   rfl
 #align linear_map.coe_smul LinearMap.coe_smul
+-/
 
 instance [SMulCommClass S T M₂] : SMulCommClass S T (M →ₛₗ[σ₁₂] M₂) :=
   ⟨fun a b f => ext fun x => smul_comm _ _ _⟩
@@ -901,28 +993,36 @@ instance : Zero (M →ₛₗ[σ₁₂] M₂) :=
       map_add' := by simp
       map_smul' := by simp }⟩
 
+#print LinearMap.zero_apply /-
 @[simp]
 theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
   rfl
 #align linear_map.zero_apply LinearMap.zero_apply
+-/
 
+#print LinearMap.comp_zero /-
 @[simp]
 theorem comp_zero (g : M₂ →ₛₗ[σ₂₃] M₃) : (g.comp (0 : M →ₛₗ[σ₁₂] M₂) : M →ₛₗ[σ₁₃] M₃) = 0 :=
   ext fun c => by rw [comp_apply, zero_apply, zero_apply, g.map_zero]
 #align linear_map.comp_zero LinearMap.comp_zero
+-/
 
+#print LinearMap.zero_comp /-
 @[simp]
 theorem zero_comp (f : M →ₛₗ[σ₁₂] M₂) : ((0 : M₂ →ₛₗ[σ₂₃] M₃).comp f : M →ₛₗ[σ₁₃] M₃) = 0 :=
   rfl
 #align linear_map.zero_comp LinearMap.zero_comp
+-/
 
 instance : Inhabited (M →ₛₗ[σ₁₂] M₂) :=
   ⟨0⟩
 
+#print LinearMap.default_def /-
 @[simp]
 theorem default_def : (default : M →ₛₗ[σ₁₂] M₂) = 0 :=
   rfl
 #align linear_map.default_def LinearMap.default_def
+-/
 
 /-- The sum of two linear maps is linear. -/
 instance : Add (M →ₛₗ[σ₁₂] M₂) :=
@@ -931,20 +1031,26 @@ instance : Add (M →ₛₗ[σ₁₂] M₂) :=
       map_add' := by simp [add_comm, add_left_comm]
       map_smul' := by simp [smul_add] }⟩
 
+#print LinearMap.add_apply /-
 @[simp]
 theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x + g x :=
   rfl
 #align linear_map.add_apply LinearMap.add_apply
+-/
 
+#print LinearMap.add_comp /-
 theorem add_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃] M₃) :
     ((h + g).comp f : M →ₛₗ[σ₁₃] M₃) = h.comp f + g.comp f :=
   rfl
 #align linear_map.add_comp LinearMap.add_comp
+-/
 
+#print LinearMap.comp_add /-
 theorem comp_add (f g : M →ₛₗ[σ₁₂] M₂) (h : M₂ →ₛₗ[σ₂₃] M₃) :
     (h.comp (f + g) : M →ₛₗ[σ₁₃] M₃) = h.comp f + h.comp g :=
   ext fun _ => h.map_add _ _
 #align linear_map.comp_add LinearMap.comp_add
+-/
 
 /-- The type of linear maps is an additive monoid. -/
 instance : AddCommMonoid (M →ₛₗ[σ₁₂] M₂) :=
@@ -957,24 +1063,26 @@ instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
       map_add' := by simp [add_comm]
       map_smul' := by simp }⟩
 
+#print LinearMap.neg_apply /-
 @[simp]
 theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
   rfl
 #align linear_map.neg_apply LinearMap.neg_apply
+-/
 
-include σ₁₃
-
+#print LinearMap.neg_comp /-
 @[simp]
 theorem neg_comp (f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] N₃) : (-g).comp f = -g.comp f :=
   rfl
 #align linear_map.neg_comp LinearMap.neg_comp
+-/
 
+#print LinearMap.comp_neg /-
 @[simp]
 theorem comp_neg (f : M →ₛₗ[σ₁₂] N₂) (g : N₂ →ₛₗ[σ₂₃] N₃) : g.comp (-f) = -g.comp f :=
   ext fun _ => g.map_neg _
 #align linear_map.comp_neg LinearMap.comp_neg
-
-omit σ₁₃
+-/
 
 /-- The subtraction of two linear maps is linear. -/
 instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
@@ -983,24 +1091,26 @@ instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
       map_add' := fun x y => by simp only [Pi.sub_apply, map_add, add_sub_add_comm]
       map_smul' := fun r x => by simp [Pi.sub_apply, map_smul, smul_sub] }⟩
 
+#print LinearMap.sub_apply /-
 @[simp]
 theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x - g x :=
   rfl
 #align linear_map.sub_apply LinearMap.sub_apply
+-/
 
-include σ₁₃
-
+#print LinearMap.sub_comp /-
 theorem sub_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃] N₃) :
     (g - h).comp f = g.comp f - h.comp f :=
   rfl
 #align linear_map.sub_comp LinearMap.sub_comp
+-/
 
+#print LinearMap.comp_sub /-
 theorem comp_sub (f g : M →ₛₗ[σ₁₂] N₂) (h : N₂ →ₛₗ[σ₂₃] N₃) :
     h.comp (g - f) = h.comp g - h.comp f :=
   ext fun _ => h.map_sub _ _
 #align linear_map.comp_sub LinearMap.comp_sub
-
-omit σ₁₃
+-/
 
 /-- The type of linear maps is an additive group. -/
 instance : AddCommGroup (M →ₛₗ[σ₁₂] N₂) :=
@@ -1034,21 +1144,21 @@ instance : DistribMulAction S (M →ₛₗ[σ₁₂] M₂)
   smul_add c f g := ext fun x => smul_add _ _ _
   smul_zero c := ext fun x => smul_zero _
 
-include σ₁₃
-
+#print LinearMap.smul_comp /-
 theorem smul_comp (a : S₃) (g : M₂ →ₛₗ[σ₂₃] M₃) (f : M →ₛₗ[σ₁₂] M₂) :
     (a • g).comp f = a • g.comp f :=
   rfl
 #align linear_map.smul_comp LinearMap.smul_comp
+-/
 
-omit σ₁₃
-
+#print LinearMap.comp_smul /-
 -- TODO: generalize this to semilinear maps
 theorem comp_smul [Module R M₂] [Module R M₃] [SMulCommClass R S M₂] [DistribMulAction S M₃]
     [SMulCommClass R S M₃] [CompatibleSMul M₃ M₂ S R] (g : M₃ →ₗ[R] M₂) (a : S) (f : M →ₗ[R] M₃) :
     g.comp (a • f) = a • g.comp f :=
   ext fun x => g.map_smul_of_tower _ _
 #align linear_map.comp_smul LinearMap.comp_smul
+-/
 
 end SMul
 
@@ -1091,27 +1201,37 @@ theorem one_eq_id : (1 : Module.End R M) = id :=
 #align linear_map.one_eq_id LinearMap.one_eq_id
 -/
 
+#print LinearMap.mul_eq_comp /-
 theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
   rfl
 #align linear_map.mul_eq_comp LinearMap.mul_eq_comp
+-/
 
+#print LinearMap.one_apply /-
 @[simp]
 theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
   rfl
 #align linear_map.one_apply LinearMap.one_apply
+-/
 
+#print LinearMap.mul_apply /-
 @[simp]
 theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
   rfl
 #align linear_map.mul_apply LinearMap.mul_apply
+-/
 
+#print LinearMap.coe_one /-
 theorem coe_one : ⇑(1 : Module.End R M) = id :=
   rfl
 #align linear_map.coe_one LinearMap.coe_one
+-/
 
+#print LinearMap.coe_mul /-
 theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
 #align linear_map.coe_mul LinearMap.coe_mul
+-/
 
 #print Module.End.monoid /-
 instance Module.End.monoid : Monoid (Module.End R M)
@@ -1142,11 +1262,13 @@ instance Module.End.semiring : Semiring (Module.End R M) :=
 #align module.End.semiring Module.End.semiring
 -/
 
+#print Module.End.natCast_apply /-
 /-- See also `module.End.nat_cast_def`. -/
 @[simp]
 theorem Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R M) m = n • m :=
   rfl
 #align module.End.nat_cast_apply Module.End.natCast_apply
+-/
 
 #print Module.End.ring /-
 instance Module.End.ring : Ring (Module.End R N₁) :=
@@ -1158,29 +1280,37 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
 #align module.End.ring Module.End.ring
 -/
 
+#print Module.End.intCast_apply /-
 /-- See also `module.End.int_cast_def`. -/
 @[simp]
 theorem Module.End.intCast_apply (z : ℤ) (m : N₁) : (↑z : Module.End R N₁) m = z • m :=
   rfl
 #align module.End.int_cast_apply Module.End.intCast_apply
+-/
 
 section
 
 variable [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
 
+#print Module.End.isScalarTower /-
 instance Module.End.isScalarTower : IsScalarTower S (Module.End R M) (Module.End R M) :=
   ⟨smul_comp⟩
 #align module.End.is_scalar_tower Module.End.isScalarTower
+-/
 
+#print Module.End.smulCommClass /-
 instance Module.End.smulCommClass [SMul S R] [IsScalarTower S R M] :
     SMulCommClass S (Module.End R M) (Module.End R M) :=
   ⟨fun s _ _ => (comp_smul _ s _).symm⟩
 #align module.End.smul_comm_class Module.End.smulCommClass
+-/
 
+#print Module.End.smulCommClass' /-
 instance Module.End.smulCommClass' [SMul S R] [IsScalarTower S R M] :
     SMulCommClass (Module.End R M) S (Module.End R M) :=
   SMulCommClass.symm _ _ _
 #align module.End.smul_comm_class' Module.End.smulCommClass'
+-/
 
 end
 
@@ -1203,10 +1333,12 @@ instance applyModule : Module (Module.End R M) M
 #align linear_map.apply_module LinearMap.applyModule
 -/
 
+#print LinearMap.smul_def /-
 @[simp]
 protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
   rfl
 #align linear_map.smul_def LinearMap.smul_def
+-/
 
 #print LinearMap.apply_faithfulSMul /-
 /-- `linear_map.apply_module` is faithful. -/
@@ -1247,6 +1379,7 @@ variable (R M) [Semiring R] [AddCommMonoid M] [Module R M]
 
 variable [Monoid S] [DistribMulAction S M] [SMulCommClass S R M]
 
+#print DistribMulAction.toLinearMap /-
 /-- Each element of the monoid defines a linear map.
 
 This is a stronger version of `distrib_mul_action.to_add_monoid_hom`. -/
@@ -1256,7 +1389,9 @@ def toLinearMap (s : S) : M →ₗ[R] M where
   map_add' := smul_add s
   map_smul' a b := smul_comm _ _ _
 #align distrib_mul_action.to_linear_map DistribMulAction.toLinearMap
+-/
 
+#print DistribMulAction.toModuleEnd /-
 /-- Each element of the monoid defines a module endomorphism.
 
 This is a stronger version of `distrib_mul_action.to_add_monoid_End`. -/
@@ -1267,6 +1402,7 @@ def toModuleEnd : S →* Module.End R M
   map_one' := LinearMap.ext <| one_smul _
   map_mul' a b := LinearMap.ext <| mul_smul _ _
 #align distrib_mul_action.to_module_End DistribMulAction.toModuleEnd
+-/
 
 end DistribMulAction
 
@@ -1291,6 +1427,7 @@ def toModuleEnd : S →+* Module.End R M :=
 #align module.to_module_End Module.toModuleEnd
 -/
 
+#print Module.moduleEndSelf /-
 /-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `module.End R R` induced by the right
 multiplication. -/
 @[simps]
@@ -1301,7 +1438,9 @@ def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.End R R :=
     left_inv := mul_one
     right_inv := fun f => LinearMap.ext_ring <| one_mul _ }
 #align module.module_End_self Module.moduleEndSelf
+-/
 
+#print Module.moduleEndSelfOp /-
 /-- The canonical (semi)ring isomorphism from `R` to `module.End Rᵐᵒᵖ R` induced by the left
 multiplication. -/
 @[simps]
@@ -1312,16 +1451,21 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
     left_inv := mul_one
     right_inv := fun f => LinearMap.ext_ring_op <| mul_one _ }
 #align module.module_End_self_op Module.moduleEndSelfOp
+-/
 
+#print Module.End.natCast_def /-
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
     (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
   rfl
 #align module.End.nat_cast_def Module.End.natCast_def
+-/
 
+#print Module.End.intCast_def /-
 theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
     (↑z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=
   rfl
 #align module.End.int_cast_def Module.End.intCast_def
+-/
 
 end Module
 
Diff
@@ -83,7 +83,7 @@ variable {N₁ : Type _} {N₂ : Type _} {N₃ : Type _} {ι : Type _}
 property. A bundled version is available with `linear_map`, and should be favored over
 `is_linear_map` most of the time. -/
 structure IsLinearMap (R : Type u) {M : Type v} {M₂ : Type w} [Semiring R] [AddCommMonoid M]
-  [AddCommMonoid M₂] [Module R M] [Module R M₂] (f : M → M₂) : Prop where
+    [AddCommMonoid M₂] [Module R M] [Module R M₂] (f : M → M₂) : Prop where
   map_add : ∀ x y, f (x + y) = f x + f y
   map_smul : ∀ (c : R) (x), f (c • x) = c • f x
 #align is_linear_map IsLinearMap
@@ -99,8 +99,8 @@ is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `σ = ring_hom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
 maps is available with the predicate `is_linear_map`, but it should be avoided most of the time. -/
 structure LinearMap {R : Type _} {S : Type _} [Semiring R] [Semiring S] (σ : R →+* S) (M : Type _)
-  (M₂ : Type _) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] extends
-  AddHom M M₂ where
+    (M₂ : Type _) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] extends
+    AddHom M M₂ where
   map_smul' : ∀ (r : R) (x : M), to_fun (r • x) = σ r • to_fun x
 #align linear_map LinearMap
 -/
@@ -126,8 +126,8 @@ A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ :
 is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `f (c • x) = (σ c) • f x`. -/
 class SemilinearMapClass (F : Type _) {R S : outParam (Type _)} [Semiring R] [Semiring S]
-  (σ : outParam <| R →+* S) (M M₂ : outParam (Type _)) [AddCommMonoid M] [AddCommMonoid M₂]
-  [Module R M] [Module S M₂] extends AddHomClass F M M₂ where
+    (σ : outParam <| R →+* S) (M M₂ : outParam (Type _)) [AddCommMonoid M] [AddCommMonoid M₂]
+    [Module R M] [Module S M₂] extends AddHomClass F M M₂ where
   map_smulₛₗ : ∀ (f : F) (r : R) (x : M), f (r • x) = σ r • f x
 #align semilinear_map_class SemilinearMapClass
 -/
@@ -411,7 +411,7 @@ we can also add an instance for `add_comm_group.int_module`, allowing `z •` to
 `R` does not support negation.
 -/
 class CompatibleSMul (R S : Type _) [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
-  [Module S M₂] where
+    [Module S M₂] where
   map_smul : ∀ (fₗ : M →ₗ[S] M₂) (c : R) (x : M), fₗ (c • x) = c • fₗ x
 #align linear_map.compatible_smul LinearMap.CompatibleSMul
 -/
@@ -601,7 +601,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMon
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
     (f : M →ₛₗ[σ] M₂) (g : M₂ → M) (h₁ : LeftInverse g f) (h₂ : RightInverse g f) : M₂ →ₛₗ[σ'] M :=
   by
-  dsimp [left_inverse, Function.RightInverse] at h₁ h₂ <;>
+  dsimp [left_inverse, Function.RightInverse] at h₁ h₂  <;>
     exact
       { toFun := g
         map_add' := fun x y => by rw [← h₁ (g (x + y)), ← h₁ (g x + g y)] <;> simp [h₂]
Diff
@@ -679,12 +679,10 @@ def toLinearMap (fₗ : M →+[R] M₂) : M →ₗ[R] M₂ :=
 instance : Coe (M →+[R] M₂) (M →ₗ[R] M₂) :=
   ⟨toLinearMap⟩
 
-/- warning: distrib_mul_action_hom.to_linear_map_eq_coe clashes with [anonymous] -> [anonymous]
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_linear_map_eq_coe [anonymous]ₓ'. -/
 @[simp]
-theorem [anonymous] (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
+theorem toLinearMap_eq_coe (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
   rfl
-#align distrib_mul_action_hom.to_linear_map_eq_coe [anonymous]
+#align distrib_mul_action_hom.to_linear_map_eq_coe DistribMulActionHom.toLinearMap_eq_coe
 
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
Diff
@@ -362,7 +362,7 @@ theorem map_eq_zero_iff (h : Function.Injective f) {x : M} : f x = 0 ↔ x = 0 :
 
 section Pointwise
 
-open Pointwise
+open scoped Pointwise
 
 variable (M M₃ σ) {F : Type _} (h : F)
 
Diff
@@ -188,9 +188,6 @@ variable {F} (f : F) [i : SemilinearMapClass F σ M M₃]
 
 include i
 
-/- warning: semilinear_map_class.map_smul_inv -> SemilinearMapClass.map_smul_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_invₓ'. -/
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
 #align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_inv
@@ -233,28 +230,16 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 #align linear_map.to_distrib_mul_action_hom LinearMap.toDistribMulActionHom
 -/
 
-/- warning: linear_map.to_fun_eq_coe -> LinearMap.toFun_eq_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u3) (succ u4)} (M -> M₃) (LinearMap.toFun.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
-Case conversion may be inaccurate. Consider using '#align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
   rfl
 #align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coe
 
-/- warning: linear_map.ext -> LinearMap.ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.ext LinearMap.extₓ'. -/
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
   FunLike.ext f g h
 #align linear_map.ext LinearMap.ext
 
-/- warning: linear_map.copy -> LinearMap.copy is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.copy LinearMap.copyₓ'. -/
 /-- Copy of a `linear_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
 protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : M →ₛₗ[σ] M₃
@@ -264,17 +249,11 @@ protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f)
   map_smul' := h.symm ▸ f.map_smul'
 #align linear_map.copy LinearMap.copy
 
-/- warning: linear_map.coe_copy -> LinearMap.coe_copy is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_copy LinearMap.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : ⇑(f.copy f' h) = f' :=
   rfl
 #align linear_map.coe_copy LinearMap.coe_copy
 
-/- warning: linear_map.copy_eq -> LinearMap.copy_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.copy_eq LinearMap.copy_eqₓ'. -/
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
   FunLike.ext' h
 #align linear_map.copy_eq LinearMap.copy_eq
@@ -287,9 +266,6 @@ protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+*
 
 initialize_simps_projections LinearMap (toFun → apply)
 
-/- warning: linear_map.coe_mk -> LinearMap.coe_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
     ((LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) : M → M₃) = f :=
@@ -303,22 +279,10 @@ def id : M →ₗ[R] M :=
 #align linear_map.id LinearMap.id
 -/
 
-/- warning: linear_map.id_apply -> LinearMap.id_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
-Case conversion may be inaccurate. Consider using '#align linear_map.id_apply LinearMap.id_applyₓ'. -/
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
   rfl
 #align linear_map.id_apply LinearMap.id_apply
 
-/- warning: linear_map.id_coe -> LinearMap.id_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} ((fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
-Case conversion may be inaccurate. Consider using '#align linear_map.id_coe LinearMap.id_coeₓ'. -/
 @[simp, norm_cast]
 theorem id_coe : ((LinearMap.id : M →ₗ[R] M) : M → M) = id :=
   rfl
@@ -338,53 +302,29 @@ variable (σ : R →+* S)
 
 variable (fₗ gₗ : M →ₗ[R] M₂) (f g : M →ₛₗ[σ] M₃)
 
-/- warning: linear_map.is_linear -> LinearMap.isLinear is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ)
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
-Case conversion may be inaccurate. Consider using '#align linear_map.is_linear LinearMap.isLinearₓ'. -/
 theorem isLinear : IsLinearMap R fₗ :=
   ⟨fₗ.map_add', fₗ.map_smul'⟩
 #align linear_map.is_linear LinearMap.isLinear
 
 variable {fₗ gₗ f g σ}
 
-/- warning: linear_map.coe_injective -> LinearMap.coe_injective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)}, Function.Injective.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (M -> M₃) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (ᾰ : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)}, Function.Injective.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (M -> M₃) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (ᾰ : M) => M₃) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ))
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_injective LinearMap.coe_injectiveₓ'. -/
 theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
   FunLike.coe_injective
 #align linear_map.coe_injective LinearMap.coe_injective
 
-/- warning: linear_map.congr_arg -> LinearMap.congr_arg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.congr_arg LinearMap.congr_argₓ'. -/
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
   FunLike.congr_arg f
 #align linear_map.congr_arg LinearMap.congr_arg
 
-/- warning: linear_map.congr_fun -> LinearMap.congr_fun is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.congr_fun LinearMap.congr_funₓ'. -/
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
   FunLike.congr_fun h x
 #align linear_map.congr_fun LinearMap.congr_fun
 
-/- warning: linear_map.ext_iff -> LinearMap.ext_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.ext_iff LinearMap.ext_iffₓ'. -/
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align linear_map.ext_iff LinearMap.ext_iff
 
-/- warning: linear_map.mk_coe -> LinearMap.mk_coe is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.mk_coe LinearMap.mk_coeₓ'. -/
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
   ext fun _ => rfl
@@ -392,49 +332,28 @@ theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h
 
 variable (fₗ gₗ f g)
 
-/- warning: linear_map.map_add -> LinearMap.map_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_add LinearMap.map_addₓ'. -/
 protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
   map_add f x y
 #align linear_map.map_add LinearMap.map_add
 
-/- warning: linear_map.map_zero -> LinearMap.map_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_zero LinearMap.map_zeroₓ'. -/
 protected theorem map_zero : f 0 = 0 :=
   map_zero f
 #align linear_map.map_zero LinearMap.map_zero
 
-/- warning: linear_map.map_smulₛₗ -> LinearMap.map_smulₛₗ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
 protected theorem map_smulₛₗ (c : R) (x : M) : f (c • x) = σ c • f x :=
   map_smulₛₗ f c x
 #align linear_map.map_smulₛₗ LinearMap.map_smulₛₗ
 
-/- warning: linear_map.map_smul -> LinearMap.map_smul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) c (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ x))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
-Case conversion may be inaccurate. Consider using '#align linear_map.map_smul LinearMap.map_smulₓ'. -/
 protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
   map_smul fₗ c x
 #align linear_map.map_smul LinearMap.map_smul
 
-/- warning: linear_map.map_smul_inv -> LinearMap.map_smul_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
 #align linear_map.map_smul_inv LinearMap.map_smul_inv
 
-/- warning: linear_map.map_eq_zero_iff -> LinearMap.map_eq_zero_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iffₓ'. -/
 -- TODO: generalize to `zero_hom_class`
 @[simp]
 theorem map_eq_zero_iff (h : Function.Injective f) {x : M} : f x = 0 ↔ x = 0 :=
@@ -447,9 +366,6 @@ open Pointwise
 
 variable (M M₃ σ) {F : Type _} (h : F)
 
-/- warning: image_smul_setₛₗ -> image_smul_setₛₗ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align image_smul_setₛₗ image_smul_setₛₗₓ'. -/
 @[simp]
 theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
     h '' (c • s) = σ c • h '' s := by
@@ -460,9 +376,6 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
     exact (Set.mem_image _ _ _).2 ⟨c • z, Set.smul_mem_smul_set hz, map_smulₛₗ _ _ _⟩
 #align image_smul_setₛₗ image_smul_setₛₗ
 
-/- warning: preimage_smul_setₛₗ -> preimage_smul_setₛₗ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align preimage_smul_setₛₗ preimage_smul_setₛₗₓ'. -/
 theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
     h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
   apply Set.Subset.antisymm
@@ -478,16 +391,10 @@ theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : I
 
 variable (R M₂)
 
-/- warning: image_smul_set -> image_smul_set is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align image_smul_set image_smul_setₓ'. -/
 theorem image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) : h '' (c • s) = c • h '' s :=
   image_smul_setₛₗ _ _ _ h c s
 #align image_smul_set image_smul_set
 
-/- warning: preimage_smul_set -> preimage_smul_set is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align preimage_smul_set preimage_smul_setₓ'. -/
 theorem preimage_smul_set [LinearMapClass F R M M₂] {c : R} (hc : IsUnit c) (s : Set M₂) :
     h ⁻¹' (c • s) = c • h ⁻¹' s :=
   preimage_smul_setₛₗ _ _ _ h hc s
@@ -519,9 +426,6 @@ instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring
 #align linear_map.is_scalar_tower.compatible_smul LinearMap.IsScalarTower.compatibleSMul
 -/
 
-/- warning: linear_map.map_smul_of_tower -> LinearMap.map_smul_of_tower is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_of_tower LinearMap.map_smul_of_towerₓ'. -/
 @[simp]
 theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
     [Module S M₂] [CompatibleSMul M M₂ R S] (fₗ : M →ₗ[S] M₂) (c : R) (x : M) :
@@ -538,12 +442,6 @@ def toAddMonoidHom : M →+ M₃ where
 #align linear_map.to_add_monoid_hom LinearMap.toAddMonoidHom
 -/
 
-/- warning: linear_map.to_add_monoid_hom_coe -> LinearMap.toAddMonoidHom_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (fun (_x : AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) => M -> M₃) (AddMonoidHom.hasCoeToFun.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (LinearMap.toAddMonoidHom.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
-Case conversion may be inaccurate. Consider using '#align linear_map.to_add_monoid_hom_coe LinearMap.toAddMonoidHom_coeₓ'. -/
 @[simp]
 theorem toAddMonoidHom_coe : ⇑f.toAddMonoidHom = f :=
   rfl
@@ -567,35 +465,20 @@ def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
 #align linear_map.restrict_scalars LinearMap.restrictScalars
 -/
 
-/- warning: linear_map.coe_restrict_scalars -> LinearMap.coe_restrictScalars is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalarsₓ'. -/
 @[simp]
 theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
   rfl
 #align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalars
 
-/- warning: linear_map.restrict_scalars_apply -> LinearMap.restrictScalars_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_apply LinearMap.restrictScalars_applyₓ'. -/
 theorem restrictScalars_apply (fₗ : M →ₗ[S] M₂) (x) : restrictScalars R fₗ x = fₗ x :=
   rfl
 #align linear_map.restrict_scalars_apply LinearMap.restrictScalars_apply
 
-/- warning: linear_map.restrict_scalars_injective -> LinearMap.restrictScalars_injective is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14], Function.Injective.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15)
-but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u4}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u4} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u4} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u3} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u4, u3, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u4} R M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u4} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (Module.toMulActionWithZero.{u1, u4} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14], Function.Injective.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (LinearMap.{u2, u2, u4, u3} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (LinearMap.{u1, u1, u4, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (LinearMap.restrictScalars.{u1, u2, u4, u3} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15)
-Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_injective LinearMap.restrictScalars_injectiveₓ'. -/
 theorem restrictScalars_injective :
     Function.Injective (restrictScalars R : (M →ₗ[S] M₂) → M →ₗ[R] M₂) := fun fₗ gₗ h =>
   ext (LinearMap.congr_fun h : _)
 #align linear_map.restrict_scalars_injective LinearMap.restrictScalars_injective
 
-/- warning: linear_map.restrict_scalars_inj -> LinearMap.restrictScalars_inj is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_inj LinearMap.restrictScalars_injₓ'. -/
 @[simp]
 theorem restrictScalars_inj (fₗ gₗ : M →ₗ[S] M₂) :
     fₗ.restrictScalars R = gₗ.restrictScalars R ↔ fₗ = gₗ :=
@@ -606,41 +489,20 @@ end RestrictScalars
 
 variable {R}
 
-/- warning: linear_map.to_add_monoid_hom_injective -> LinearMap.toAddMonoidHom_injective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)}, Function.Injective.{max (succ u3) (succ u4), max (succ u4) (succ u3)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (LinearMap.toAddMonoidHom.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)}, Function.Injective.{max (succ u4) (succ u3), max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)
-Case conversion may be inaccurate. Consider using '#align linear_map.to_add_monoid_hom_injective LinearMap.toAddMonoidHom_injectiveₓ'. -/
 theorem toAddMonoidHom_injective : Function.Injective (toAddMonoidHom : (M →ₛₗ[σ] M₃) → M →+ M₃) :=
   fun f g h => ext <| AddMonoidHom.congr_fun h
 #align linear_map.to_add_monoid_hom_injective LinearMap.toAddMonoidHom_injective
 
-/- warning: linear_map.ext_ring -> LinearMap.ext_ring is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) f g)
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
-Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring LinearMap.ext_ringₓ'. -/
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
 @[ext]
 theorem ext_ring {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
   ext fun x => by rw [← mul_one x, ← smul_eq_mul, f.map_smulₛₗ, g.map_smulₛₗ, h]
 #align linear_map.ext_ring LinearMap.ext_ring
 
-/- warning: linear_map.ext_ring_iff -> LinearMap.ext_ring_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] {σ : RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} {f : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10} {g : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10}, Iff (Eq.{max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) f g) (Eq.{succ u2} M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
-Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_iff LinearMap.ext_ring_iffₓ'. -/
 theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
 #align linear_map.ext_ring_iff LinearMap.ext_ring_iff
 
-/- warning: linear_map.ext_ring_op -> LinearMap.ext_ring_op is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_op LinearMap.ext_ring_opₓ'. -/
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
   ext fun x => by rw [← one_mul x, ← op_smul_eq_mul, f.map_smulₛₗ, g.map_smulₛₗ, h]
@@ -692,9 +554,6 @@ infixr:80 " ∘ₗ " =>
 
 include σ₁₃
 
-/- warning: linear_map.comp_apply -> LinearMap.comp_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_apply LinearMap.comp_applyₓ'. -/
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
 #align linear_map.comp_apply LinearMap.comp_apply
@@ -703,9 +562,6 @@ omit σ₁₃
 
 include σ₁₃
 
-/- warning: linear_map.coe_comp -> LinearMap.coe_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_comp LinearMap.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
   rfl
@@ -713,17 +569,11 @@ theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
 
 omit σ₁₃
 
-/- warning: linear_map.comp_id -> LinearMap.comp_id is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_id LinearMap.comp_idₓ'. -/
 @[simp]
 theorem comp_id : f.comp id = f :=
   LinearMap.ext fun x => rfl
 #align linear_map.comp_id LinearMap.comp_id
 
-/- warning: linear_map.id_comp -> LinearMap.id_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.id_comp LinearMap.id_compₓ'. -/
 @[simp]
 theorem id_comp : id.comp f = f :=
   LinearMap.ext fun x => rfl
@@ -733,16 +583,10 @@ variable {f g} {f' : M₂ →ₛₗ[σ₂₃] M₃} {g' : M₁ →ₛₗ[σ₁
 
 include σ₁₃
 
-/- warning: linear_map.cancel_right -> LinearMap.cancel_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.cancel_right LinearMap.cancel_rightₓ'. -/
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h => ext <| hg.forall.2 (ext_iff.1 h), fun h => h ▸ rfl⟩
 #align linear_map.cancel_right LinearMap.cancel_right
 
-/- warning: linear_map.cancel_left -> LinearMap.cancel_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.cancel_left LinearMap.cancel_leftₓ'. -/
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h => ext fun x => hf <| by rw [← comp_apply, h, comp_apply], fun h => h ▸ rfl⟩
 #align linear_map.cancel_left LinearMap.cancel_left
@@ -753,9 +597,6 @@ end
 
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
 
-/- warning: linear_map.inverse -> LinearMap.inverse is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.inverse LinearMap.inverseₓ'. -/
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
     (f : M →ₛₗ[σ] M₂) (g : M₂ → M) (h₁ : LeftInverse g f) (h₂ : RightInverse g f) : M₂ →ₛₗ[σ'] M :=
@@ -777,16 +618,10 @@ variable {module_M : Module R M} {module_M₂ : Module S M₂} {σ : R →+* S}
 
 variable (f : M →ₛₗ[σ] M₂)
 
-/- warning: linear_map.map_neg -> LinearMap.map_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_neg LinearMap.map_negₓ'. -/
 protected theorem map_neg (x : M) : f (-x) = -f x :=
   map_neg f x
 #align linear_map.map_neg LinearMap.map_neg
 
-/- warning: linear_map.map_sub -> LinearMap.map_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_sub LinearMap.map_subₓ'. -/
 protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
 #align linear_map.map_sub LinearMap.map_sub
@@ -845,31 +680,17 @@ instance : Coe (M →+[R] M₂) (M →ₗ[R] M₂) :=
   ⟨toLinearMap⟩
 
 /- warning: distrib_mul_action_hom.to_linear_map_eq_coe clashes with [anonymous] -> [anonymous]
-warning: distrib_mul_action_hom.to_linear_map_eq_coe -> [anonymous] is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u_1}} {M : Type.{u_9}} {M₂ : Type.{u_11}} [_inst_1 : Semiring.{u_1} R] [_inst_2 : AddCommMonoid.{u_9} M] [_inst_3 : AddCommMonoid.{u_11} M₂] [_inst_4 : Module.{u_1, u_9} R M _inst_1 _inst_2] [_inst_5 : Module.{u_1, u_11} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u_1, u_9, u_11} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u_9} M _inst_2) (Module.toDistribMulAction.{u_1, u_9} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u_11} M₂ _inst_3) (Module.toDistribMulAction.{u_1, u_11} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u_9) (succ u_11)} (LinearMap.{u_1, u_1, u_9, u_11} R R _inst_1 _inst_1 (RingHom.id.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.toLinearMap.{u_1, u_9, u_11} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) ((fun (a : Sort.{max (succ u_9) (succ u_11)}) (b : Sort.{max (succ u_9) (succ u_11)}) [self : HasLiftT.{max (succ u_9) (succ u_11), max (succ u_9) (succ u_11)} a b] => self.0) (DistribMulActionHom.{u_1, u_9, u_11} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u_9} M _inst_2) (Module.toDistribMulAction.{u_1, u_9} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u_11} M₂ _inst_3) (Module.toDistribMulAction.{u_1, u_11} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u_1, u_1, u_9, u_11} R R _inst_1 _inst_1 (RingHom.id.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u_9) (succ u_11), max (succ u_9) (succ u_11)} (DistribMulActionHom.{u_1, u_9, u_11} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u_9} M _inst_2) (Module.toDistribMulAction.{u_1, u_9} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u_11} M₂ _inst_3) (Module.toDistribMulAction.{u_1, u_11} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u_1, u_1, u_9, u_11} R R _inst_1 _inst_1 (RingHom.id.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u_9) (succ u_11), max (succ u_9) (succ u_11)} (DistribMulActionHom.{u_1, u_9, u_11} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u_9} M _inst_2) (Module.toDistribMulAction.{u_1, u_9} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u_11} M₂ _inst_3) (Module.toDistribMulAction.{u_1, u_11} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u_1, u_1, u_9, u_11} R R _inst_1 _inst_1 (RingHom.id.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u_9) (succ u_11), max (succ u_9) (succ u_11)} (DistribMulActionHom.{u_1, u_9, u_11} R (MonoidWithZero.toMonoid.{u_1} R (Semiring.toMonoidWithZero.{u_1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u_9} M _inst_2) (Module.toDistribMulAction.{u_1, u_9} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u_11} M₂ _inst_3) (Module.toDistribMulAction.{u_1, u_11} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u_1, u_1, u_9, u_11} R R _inst_1 _inst_1 (RingHom.id.{u_1} R (Semiring.toNonAssocSemiring.{u_1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u_1, u_9, u_11} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)
-but is expected to have type
-  forall {R : Type.{u}} {M : Type.{v}}, (Nat -> R -> M) -> Nat -> (List.{u} R) -> (List.{v} M)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_linear_map_eq_coe [anonymous]ₓ'. -/
 @[simp]
 theorem [anonymous] (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
   rfl
 #align distrib_mul_action_hom.to_linear_map_eq_coe [anonymous]
 
-/- warning: distrib_mul_action_hom.coe_to_linear_map -> DistribMulActionHom.coe_toLinearMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMapₓ'. -/
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
   rfl
 #align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMap
 
-/- warning: distrib_mul_action_hom.to_linear_map_injective -> DistribMulActionHom.toLinearMap_injective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {f : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)} {g : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)}, (Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) 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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) g)) -> (Eq.{max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) f g)
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)} {g : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)}, (Eq.{max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 g)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) f g)
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_linear_map_injective DistribMulActionHom.toLinearMap_injectiveₓ'. -/
 theorem toLinearMap_injective {f g : M →+[R] M₂} (h : (f : M →ₗ[R] M₂) = (g : M →ₗ[R] M₂)) :
     f = g := by ext m; exact LinearMap.congr_fun h m
 #align distrib_mul_action_hom.to_linear_map_injective DistribMulActionHom.toLinearMap_injective
@@ -896,23 +717,11 @@ def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
 #align is_linear_map.mk' IsLinearMap.mk'
 -/
 
-/- warning: is_linear_map.mk'_apply -> IsLinearMap.mk'_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (IsLinearMap.mk'.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
-Case conversion may be inaccurate. Consider using '#align is_linear_map.mk'_apply IsLinearMap.mk'_applyₓ'. -/
 @[simp]
 theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f x :=
   rfl
 #align is_linear_map.mk'_apply IsLinearMap.mk'_apply
 
-/- warning: is_linear_map.is_linear_map_smul -> IsLinearMap.isLinearMap_smul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_6 : CommSemiring.{u1} R] [_inst_7 : AddCommMonoid.{u2} M] [_inst_8 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_6) _inst_7] (c : R), IsLinearMap.{u1, u2, u2} R M M (CommSemiring.toSemiring.{u1} R _inst_6) _inst_7 _inst_7 _inst_8 _inst_8 (fun (z : M) => SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_6))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R _inst_6)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (Module.toMulActionWithZero.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_6) _inst_7 _inst_8)))) c z)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_6 : CommSemiring.{u2} R] [_inst_7 : AddCommMonoid.{u1} M] [_inst_8 : Module.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_6) _inst_7] (c : R), IsLinearMap.{u2, u1, u1} R M M (CommSemiring.toSemiring.{u2} R _inst_6) _inst_7 _inst_7 _inst_8 _inst_8 (fun (z : M) => HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (CommMonoidWithZero.toZero.{u2} R (CommSemiring.toCommMonoidWithZero.{u2} R _inst_6)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R (CommSemiring.toSemiring.{u2} R _inst_6)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (Module.toMulActionWithZero.{u2, u1} R M (CommSemiring.toSemiring.{u2} R _inst_6) _inst_7 _inst_8))))) c z)
-Case conversion may be inaccurate. Consider using '#align is_linear_map.is_linear_map_smul IsLinearMap.isLinearMap_smulₓ'. -/
 theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Module R M] (c : R) :
     IsLinearMap R fun z : M => c • z :=
   by
@@ -921,12 +730,6 @@ theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Modu
   simp only [smul_smul, mul_comm]
 #align is_linear_map.is_linear_map_smul IsLinearMap.isLinearMap_smul
 
-/- warning: is_linear_map.is_linear_map_smul' -> IsLinearMap.isLinearMap_smul' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_6 : Semiring.{u1} R] [_inst_7 : AddCommMonoid.{u2} M] [_inst_8 : Module.{u1, u2} R M _inst_6 _inst_7] (a : M), IsLinearMap.{u1, u1, u2} R R M _inst_6 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_6))) _inst_7 (Semiring.toModule.{u1} R _inst_6) _inst_8 (fun (c : R) => SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_6)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_6) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_7))) (Module.toMulActionWithZero.{u1, u2} R M _inst_6 _inst_7 _inst_8)))) c a)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_6 : Semiring.{u2} R] [_inst_7 : AddCommMonoid.{u1} M] [_inst_8 : Module.{u2, u1} R M _inst_6 _inst_7] (a : M), IsLinearMap.{u2, u2, u1} R R M _inst_6 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_6))) _inst_7 (Semiring.toModule.{u2} R _inst_6) _inst_8 (fun (c : R) => HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_6)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_6) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_7)) (Module.toMulActionWithZero.{u2, u1} R M _inst_6 _inst_7 _inst_8))))) c a)
-Case conversion may be inaccurate. Consider using '#align is_linear_map.is_linear_map_smul' IsLinearMap.isLinearMap_smul'ₓ'. -/
 theorem isLinearMap_smul' {R M : Type _} [Semiring R] [AddCommMonoid M] [Module R M] (a : M) :
     IsLinearMap R fun c : R => c • a :=
   IsLinearMap.mk (fun x y => add_smul x y a) fun x y => mul_smul x y a
@@ -936,12 +739,6 @@ variable {f : M → M₂} (lin : IsLinearMap R f)
 
 include M M₂ lin
 
-/- warning: is_linear_map.map_zero -> IsLinearMap.map_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {f : M -> M₂}, (IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) -> (Eq.{succ u3} M₂ (f (OfNat.ofNat.{u2} M 0 (OfNat.mk.{u2} M 0 (Zero.zero.{u2} M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))))))) (OfNat.ofNat.{u3} M₂ 0 (OfNat.mk.{u3} M₂ 0 (Zero.zero.{u3} M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)))))))
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_3 : AddCommMonoid.{u2} M₂] [_inst_4 : Module.{u3, u1} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u2} R M₂ _inst_1 _inst_3] {f : M -> M₂}, (IsLinearMap.{u3, u1, u2} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) -> (Eq.{succ u2} M₂ (f (OfNat.ofNat.{u1} M 0 (Zero.toOfNat0.{u1} M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2))))) (OfNat.ofNat.{u2} M₂ 0 (Zero.toOfNat0.{u2} M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_3)))))
-Case conversion may be inaccurate. Consider using '#align is_linear_map.map_zero IsLinearMap.map_zeroₓ'. -/
 theorem map_zero : f (0 : M) = (0 : M₂) :=
   (lin.mk' f).map_zero
 #align is_linear_map.map_zero IsLinearMap.map_zero
@@ -956,12 +753,6 @@ variable [Module R M] [Module R M₂]
 
 include R
 
-/- warning: is_linear_map.is_linear_map_neg -> IsLinearMap.isLinearMap_neg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)], IsLinearMap.{u1, u2, u2} R M M _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_4 _inst_4 (fun (z : M) => Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) z)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommGroup.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)], IsLinearMap.{u2, u1, u1} R M M _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) _inst_4 _inst_4 (fun (z : M) => Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) z)
-Case conversion may be inaccurate. Consider using '#align is_linear_map.is_linear_map_neg IsLinearMap.isLinearMap_negₓ'. -/
 theorem isLinearMap_neg : IsLinearMap R fun z : M => -z :=
   IsLinearMap.mk neg_add fun x y => (smul_neg x y).symm
 #align is_linear_map.is_linear_map_neg IsLinearMap.isLinearMap_neg
@@ -970,22 +761,10 @@ variable {f : M → M₂} (lin : IsLinearMap R f)
 
 include M M₂ lin
 
-/- warning: is_linear_map.map_neg -> IsLinearMap.map_neg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] {f : M -> M₂}, (IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_4 _inst_5 f) -> (forall (x : M), Eq.{succ u3} M₂ (f (Neg.neg.{u2} M (SubNegMonoid.toHasNeg.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2))) x)) (Neg.neg.{u3} M₂ (SubNegMonoid.toHasNeg.{u3} M₂ (AddGroup.toSubNegMonoid.{u3} M₂ (AddCommGroup.toAddGroup.{u3} M₂ _inst_3))) (f x)))
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{u3, u1} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_5 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] {f : M -> M₂}, (IsLinearMap.{u3, u1, u2} R M M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_4 _inst_5 f) -> (forall (x : M), Eq.{succ u2} M₂ (f (Neg.neg.{u1} M (NegZeroClass.toNeg.{u1} M (SubNegZeroMonoid.toNegZeroClass.{u1} M (SubtractionMonoid.toSubNegZeroMonoid.{u1} M (SubtractionCommMonoid.toSubtractionMonoid.{u1} M (AddCommGroup.toDivisionAddCommMonoid.{u1} M _inst_2))))) x)) (Neg.neg.{u2} M₂ (NegZeroClass.toNeg.{u2} M₂ (SubNegZeroMonoid.toNegZeroClass.{u2} M₂ (SubtractionMonoid.toSubNegZeroMonoid.{u2} M₂ (SubtractionCommMonoid.toSubtractionMonoid.{u2} M₂ (AddCommGroup.toDivisionAddCommMonoid.{u2} M₂ _inst_3))))) (f x)))
-Case conversion may be inaccurate. Consider using '#align is_linear_map.map_neg IsLinearMap.map_negₓ'. -/
 theorem map_neg (x : M) : f (-x) = -f x :=
   (lin.mk' f).map_neg x
 #align is_linear_map.map_neg IsLinearMap.map_neg
 
-/- warning: is_linear_map.map_sub -> IsLinearMap.map_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] {f : M -> M₂}, (IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_4 _inst_5 f) -> (forall (x : M) (y : M), Eq.{succ u3} M₂ (f (HSub.hSub.{u2, u2, u2} M M M (instHSub.{u2} M (SubNegMonoid.toHasSub.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_2)))) x y)) (HSub.hSub.{u3, u3, u3} M₂ M₂ M₂ (instHSub.{u3} M₂ (SubNegMonoid.toHasSub.{u3} M₂ (AddGroup.toSubNegMonoid.{u3} M₂ (AddCommGroup.toAddGroup.{u3} M₂ _inst_3)))) (f x) (f y)))
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommGroup.{u1} M] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{u3, u1} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M _inst_2)] [_inst_5 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] {f : M -> M₂}, (IsLinearMap.{u3, u1, u2} R M M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M _inst_2) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_4 _inst_5 f) -> (forall (x : M) (y : M), Eq.{succ u2} M₂ (f (HSub.hSub.{u1, u1, u1} M M M (instHSub.{u1} M (SubNegMonoid.toSub.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_2)))) x y)) (HSub.hSub.{u2, u2, u2} M₂ M₂ M₂ (instHSub.{u2} M₂ (SubNegMonoid.toSub.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3)))) (f x) (f y)))
-Case conversion may be inaccurate. Consider using '#align is_linear_map.map_sub IsLinearMap.map_subₓ'. -/
 theorem map_sub (x y) : f (x - y) = f x - f y :=
   (lin.mk' f).map_sub x y
 #align is_linear_map.map_sub IsLinearMap.map_sub
@@ -1012,23 +791,11 @@ def AddMonoidHom.toNatLinearMap [AddCommMonoid M] [AddCommMonoid M₂] (f : M 
 #align add_monoid_hom.to_nat_linear_map AddMonoidHom.toNatLinearMap
 -/
 
-/- warning: add_monoid_hom.to_nat_linear_map_injective -> AddMonoidHom.toNatLinearMap_injective is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommMonoid.{u1} M] [_inst_2 : AddCommMonoid.{u2} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_1)) (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_2))) (LinearMap.{0, 0, u1, u2} Nat Nat Nat.semiring Nat.semiring (RingHom.id.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) M M₂ _inst_1 _inst_2 (AddCommMonoid.natModule.{u1} M _inst_1) (AddCommMonoid.natModule.{u2} M₂ _inst_2)) (AddMonoidHom.toNatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2)
-but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : AddCommMonoid.{u1} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_2))) (LinearMap.{0, 0, u2, u1} Nat Nat Nat.semiring Nat.semiring (RingHom.id.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) M M₂ _inst_1 _inst_2 (AddCommMonoid.natModule.{u2} M _inst_1) (AddCommMonoid.natModule.{u1} M₂ _inst_2)) (AddMonoidHom.toNatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_nat_linear_map_injective AddMonoidHom.toNatLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toNatLinearMap_injective [AddCommMonoid M] [AddCommMonoid M₂] :
     Function.Injective (@AddMonoidHom.toNatLinearMap M M₂ _ _) := by intro f g h; ext;
   exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_nat_linear_map_injective AddMonoidHom.toNatLinearMap_injective
 
-/- warning: add_monoid_hom.to_int_linear_map -> AddMonoidHom.toIntLinearMap is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) -> (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2))
-but is expected to have type
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) -> (LinearMap.{0, 0, u1, u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2))
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_int_linear_map AddMonoidHom.toIntLinearMapₓ'. -/
 /-- Reinterpret an additive homomorphism as a `ℤ`-linear map. -/
 def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) : M →ₗ[ℤ] M₂
     where
@@ -1037,23 +804,11 @@ def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+
   map_smul' := map_zsmul f
 #align add_monoid_hom.to_int_linear_map AddMonoidHom.toIntLinearMap
 
-/- warning: add_monoid_hom.to_int_linear_map_injective -> AddMonoidHom.toIntLinearMap_injective is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2)
-but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_int_linear_map_injective AddMonoidHom.toIntLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M₂] :
     Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) := by intro f g h; ext;
   exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_int_linear_map_injective AddMonoidHom.toIntLinearMap_injective
 
-/- warning: add_monoid_hom.coe_to_int_linear_map -> AddMonoidHom.coe_toIntLinearMap is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (fun (_x : LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Int Int M M₂ Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) f)
-but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_int_linear_map AddMonoidHom.coe_toIntLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) :
     ⇑f.toIntLinearMap = f :=
@@ -1068,23 +823,11 @@ def AddMonoidHom.toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M
 #align add_monoid_hom.to_rat_linear_map AddMonoidHom.toRatLinearMap
 -/
 
-/- warning: add_monoid_hom.to_rat_linear_map_injective -> AddMonoidHom.toRatLinearMap_injective is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)], Function.Injective.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4)
-but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4)
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_rat_linear_map_injective AddMonoidHom.toRatLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
     [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) := by
   intro f g h; ext; exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_rat_linear_map_injective AddMonoidHom.toRatLinearMap_injective
 
-/- warning: add_monoid_hom.coe_to_rat_linear_map -> AddMonoidHom.coe_toRatLinearMap is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (fun (_x : LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) f)
-but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
-Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_rat_linear_map AddMonoidHom.coe_toRatLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
     [Module ℚ M₂] (f : M →+ M₂) : ⇑f.toRatLinearMap = f :=
@@ -1115,17 +858,11 @@ instance : SMul S (M →ₛₗ[σ₁₂] M₂) :=
       map_add' := fun x y => by simp only [Pi.smul_apply, f.map_add, smul_add]
       map_smul' := fun c x => by simp [Pi.smul_apply, smul_comm (σ₁₂ c)] }⟩
 
-/- warning: linear_map.smul_apply -> LinearMap.smul_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.smul_apply LinearMap.smul_applyₓ'. -/
 @[simp]
 theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f) x = a • f x :=
   rfl
 #align linear_map.smul_apply LinearMap.smul_apply
 
-/- warning: linear_map.coe_smul -> LinearMap.coe_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_smul LinearMap.coe_smulₓ'. -/
 theorem coe_smul (a : S) (f : M →ₛₗ[σ₁₂] M₂) : ⇑(a • f) = a • f :=
   rfl
 #align linear_map.coe_smul LinearMap.coe_smul
@@ -1166,25 +903,16 @@ instance : Zero (M →ₛₗ[σ₁₂] M₂) :=
       map_add' := by simp
       map_smul' := by simp }⟩
 
-/- warning: linear_map.zero_apply -> LinearMap.zero_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.zero_apply LinearMap.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
   rfl
 #align linear_map.zero_apply LinearMap.zero_apply
 
-/- warning: linear_map.comp_zero -> LinearMap.comp_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_zero LinearMap.comp_zeroₓ'. -/
 @[simp]
 theorem comp_zero (g : M₂ →ₛₗ[σ₂₃] M₃) : (g.comp (0 : M →ₛₗ[σ₁₂] M₂) : M →ₛₗ[σ₁₃] M₃) = 0 :=
   ext fun c => by rw [comp_apply, zero_apply, zero_apply, g.map_zero]
 #align linear_map.comp_zero LinearMap.comp_zero
 
-/- warning: linear_map.zero_comp -> LinearMap.zero_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.zero_comp LinearMap.zero_compₓ'. -/
 @[simp]
 theorem zero_comp (f : M →ₛₗ[σ₁₂] M₂) : ((0 : M₂ →ₛₗ[σ₂₃] M₃).comp f : M →ₛₗ[σ₁₃] M₃) = 0 :=
   rfl
@@ -1193,12 +921,6 @@ theorem zero_comp (f : M →ₛₗ[σ₁₂] M₂) : ((0 : M₂ →ₛₗ[σ₂
 instance : Inhabited (M →ₛₗ[σ₁₂] M₂) :=
   ⟨0⟩
 
-/- warning: linear_map.default_def -> LinearMap.default_def is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)}, Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (Inhabited.default.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.inhabited.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) (OfNat.ofNat.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (OfNat.mk.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.zero.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasZero.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))))
-but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u4}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u3} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)}, Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (Inhabited.default.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instInhabitedLinearMap.{u2, u1, u4, u3} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) (OfNat.ofNat.{max u4 u3} (LinearMap.{u2, u1, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u4 u3} (LinearMap.{u2, u1, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u4, u3} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)))
-Case conversion may be inaccurate. Consider using '#align linear_map.default_def LinearMap.default_defₓ'. -/
 @[simp]
 theorem default_def : (default : M →ₛₗ[σ₁₂] M₂) = 0 :=
   rfl
@@ -1211,25 +933,16 @@ instance : Add (M →ₛₗ[σ₁₂] M₂) :=
       map_add' := by simp [add_comm, add_left_comm]
       map_smul' := by simp [smul_add] }⟩
 
-/- warning: linear_map.add_apply -> LinearMap.add_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.add_apply LinearMap.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x + g x :=
   rfl
 #align linear_map.add_apply LinearMap.add_apply
 
-/- warning: linear_map.add_comp -> LinearMap.add_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.add_comp LinearMap.add_compₓ'. -/
 theorem add_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃] M₃) :
     ((h + g).comp f : M →ₛₗ[σ₁₃] M₃) = h.comp f + g.comp f :=
   rfl
 #align linear_map.add_comp LinearMap.add_comp
 
-/- warning: linear_map.comp_add -> LinearMap.comp_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_add LinearMap.comp_addₓ'. -/
 theorem comp_add (f g : M →ₛₗ[σ₁₂] M₂) (h : M₂ →ₛₗ[σ₂₃] M₃) :
     (h.comp (f + g) : M →ₛₗ[σ₁₃] M₃) = h.comp f + h.comp g :=
   ext fun _ => h.map_add _ _
@@ -1246,9 +959,6 @@ instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
       map_add' := by simp [add_comm]
       map_smul' := by simp }⟩
 
-/- warning: linear_map.neg_apply -> LinearMap.neg_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.neg_apply LinearMap.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
   rfl
@@ -1256,17 +966,11 @@ theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
 
 include σ₁₃
 
-/- warning: linear_map.neg_comp -> LinearMap.neg_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.neg_comp LinearMap.neg_compₓ'. -/
 @[simp]
 theorem neg_comp (f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] N₃) : (-g).comp f = -g.comp f :=
   rfl
 #align linear_map.neg_comp LinearMap.neg_comp
 
-/- warning: linear_map.comp_neg -> LinearMap.comp_neg is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_neg LinearMap.comp_negₓ'. -/
 @[simp]
 theorem comp_neg (f : M →ₛₗ[σ₁₂] N₂) (g : N₂ →ₛₗ[σ₂₃] N₃) : g.comp (-f) = -g.comp f :=
   ext fun _ => g.map_neg _
@@ -1281,9 +985,6 @@ instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
       map_add' := fun x y => by simp only [Pi.sub_apply, map_add, add_sub_add_comm]
       map_smul' := fun r x => by simp [Pi.sub_apply, map_smul, smul_sub] }⟩
 
-/- warning: linear_map.sub_apply -> LinearMap.sub_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.sub_apply LinearMap.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x - g x :=
   rfl
@@ -1291,17 +992,11 @@ theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x -
 
 include σ₁₃
 
-/- warning: linear_map.sub_comp -> LinearMap.sub_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.sub_comp LinearMap.sub_compₓ'. -/
 theorem sub_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃] N₃) :
     (g - h).comp f = g.comp f - h.comp f :=
   rfl
 #align linear_map.sub_comp LinearMap.sub_comp
 
-/- warning: linear_map.comp_sub -> LinearMap.comp_sub is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_sub LinearMap.comp_subₓ'. -/
 theorem comp_sub (f g : M →ₛₗ[σ₁₂] N₂) (h : N₂ →ₛₗ[σ₂₃] N₃) :
     h.comp (g - f) = h.comp g - h.comp f :=
   ext fun _ => h.map_sub _ _
@@ -1343,9 +1038,6 @@ instance : DistribMulAction S (M →ₛₗ[σ₁₂] M₂)
 
 include σ₁₃
 
-/- warning: linear_map.smul_comp -> LinearMap.smul_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.smul_comp LinearMap.smul_compₓ'. -/
 theorem smul_comp (a : S₃) (g : M₂ →ₛₗ[σ₂₃] M₃) (f : M →ₛₗ[σ₁₂] M₂) :
     (a • g).comp f = a • g.comp f :=
   rfl
@@ -1353,9 +1045,6 @@ theorem smul_comp (a : S₃) (g : M₂ →ₛₗ[σ₂₃] M₃) (f : M →ₛ
 
 omit σ₁₃
 
-/- warning: linear_map.comp_smul -> LinearMap.comp_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_smul LinearMap.comp_smulₓ'. -/
 -- TODO: generalize this to semilinear maps
 theorem comp_smul [Module R M₂] [Module R M₃] [SMulCommClass R S M₂] [DistribMulAction S M₃]
     [SMulCommClass R S M₃] [CompatibleSMul M₃ M₂ S R] (g : M₃ →ₗ[R] M₂) (a : S) (f : M →ₗ[R] M₃) :
@@ -1404,54 +1093,24 @@ theorem one_eq_id : (1 : Module.End R M) = id :=
 #align linear_map.one_eq_id LinearMap.one_eq_id
 -/
 
-/- warning: linear_map.mul_eq_comp -> LinearMap.mul_eq_comp is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g) (LinearMap.comp.{u1, u1, u1, u2, u2, u2} R R R M M M _inst_1 _inst_1 _inst_1 _inst_2 _inst_2 _inst_2 _inst_4 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomCompTriple.right_ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f g)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) (LinearMap.comp.{u2, u2, u2, u1, u1, u1} R R R M M M _inst_1 _inst_1 _inst_1 _inst_2 _inst_2 _inst_2 _inst_4 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (RingHomCompTriple.ids.{u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f g)
-Case conversion may be inaccurate. Consider using '#align linear_map.mul_eq_comp LinearMap.mul_eq_compₓ'. -/
 theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
   rfl
 #align linear_map.mul_eq_comp LinearMap.mul_eq_comp
 
-/- warning: linear_map.one_apply -> LinearMap.one_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) x) x
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
-Case conversion may be inaccurate. Consider using '#align linear_map.one_apply LinearMap.one_applyₓ'. -/
 @[simp]
 theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
   rfl
 #align linear_map.one_apply LinearMap.one_apply
 
-/- warning: linear_map.mul_apply -> LinearMap.mul_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g) x) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g x))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
-Case conversion may be inaccurate. Consider using '#align linear_map.mul_apply LinearMap.mul_applyₓ'. -/
 @[simp]
 theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
   rfl
 #align linear_map.mul_apply LinearMap.mul_apply
 
-/- warning: linear_map.coe_one -> LinearMap.coe_one is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (id.{succ u2} M)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_one LinearMap.coe_oneₓ'. -/
 theorem coe_one : ⇑(1 : Module.End R M) = id :=
   rfl
 #align linear_map.coe_one LinearMap.coe_one
 
-/- warning: linear_map.coe_mul -> LinearMap.coe_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u2, succ u2, succ u2} M M M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_mul LinearMap.coe_mulₓ'. -/
 theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
 #align linear_map.coe_mul LinearMap.coe_mul
@@ -1485,12 +1144,6 @@ instance Module.End.semiring : Semiring (Module.End R M) :=
 #align module.End.semiring Module.End.semiring
 -/
 
-/- warning: module.End.nat_cast_apply -> Module.End.natCast_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Nat.castCoe.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)))))))) n) m) (SMul.smul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) n m)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
-Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_apply Module.End.natCast_applyₓ'. -/
 /-- See also `module.End.nat_cast_def`. -/
 @[simp]
 theorem Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R M) m = n • m :=
@@ -1507,12 +1160,6 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
 #align module.End.ring Module.End.ring
 -/
 
-/- warning: module.End.int_cast_apply -> Module.End.intCast_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} N₁ (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) N₁ N₁ (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5) => N₁ -> N₁) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5))))))) z) m) (SMul.smul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3))) z m)
-but is expected to have type
-  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
-Case conversion may be inaccurate. Consider using '#align module.End.int_cast_apply Module.End.intCast_applyₓ'. -/
 /-- See also `module.End.int_cast_def`. -/
 @[simp]
 theorem Module.End.intCast_apply (z : ℤ) (m : N₁) : (↑z : Module.End R N₁) m = z • m :=
@@ -1523,33 +1170,15 @@ section
 
 variable [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
 
-/- warning: module.End.is_scalar_tower -> Module.End.isScalarTower is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_6 : Monoid.{u2} S] [_inst_7 : DistribMulAction.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_8 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))], IsScalarTower.{u2, u3, u3} S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.hasSmul.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8) (Mul.toSMul.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u3} R M _inst_1 _inst_2 _inst_4)) (LinearMap.hasSmul.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_6 : Monoid.{u2} S] [_inst_7 : DistribMulAction.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_8 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))], IsScalarTower.{u2, u3, u3} S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instSMulLinearMap.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8) (SMulZeroClass.toSMul.{u3, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (SMulWithZero.toSMulZeroClass.{u3, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroClass.toSMulWithZero.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M _inst_1 _inst_2 _inst_4))))))) (LinearMap.instSMulLinearMap.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8)
-Case conversion may be inaccurate. Consider using '#align module.End.is_scalar_tower Module.End.isScalarTowerₓ'. -/
 instance Module.End.isScalarTower : IsScalarTower S (Module.End R M) (Module.End R M) :=
   ⟨smul_comp⟩
 #align module.End.is_scalar_tower Module.End.isScalarTower
 
-/- warning: module.End.smul_comm_class -> Module.End.smulCommClass is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_6 : Monoid.{u2} S] [_inst_7 : DistribMulAction.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_8 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))] [_inst_9 : SMul.{u2, u1} S R] [_inst_10 : IsScalarTower.{u2, u1, u3} S R M _inst_9 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))], SMulCommClass.{u2, u3, u3} S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.hasSmul.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8) (Mul.toSMul.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u3} R M _inst_1 _inst_2 _inst_4))
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_6 : Monoid.{u2} S] [_inst_7 : DistribMulAction.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_8 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))] [_inst_9 : SMul.{u2, u1} S R] [_inst_10 : IsScalarTower.{u2, u1, u3} S R M _inst_9 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))], SMulCommClass.{u2, u3, u3} S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instSMulLinearMap.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8) (SMulZeroClass.toSMul.{u3, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (SMulWithZero.toSMulZeroClass.{u3, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroClass.toSMulWithZero.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M _inst_1 _inst_2 _inst_4)))))))
-Case conversion may be inaccurate. Consider using '#align module.End.smul_comm_class Module.End.smulCommClassₓ'. -/
 instance Module.End.smulCommClass [SMul S R] [IsScalarTower S R M] :
     SMulCommClass S (Module.End R M) (Module.End R M) :=
   ⟨fun s _ _ => (comp_smul _ s _).symm⟩
 #align module.End.smul_comm_class Module.End.smulCommClass
 
-/- warning: module.End.smul_comm_class' -> Module.End.smulCommClass' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_6 : Monoid.{u2} S] [_inst_7 : DistribMulAction.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_8 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))] [_inst_9 : SMul.{u2, u1} S R] [_inst_10 : IsScalarTower.{u2, u1, u3} S R M _inst_9 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))], SMulCommClass.{u3, u2, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Mul.toSMul.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u3} R M _inst_1 _inst_2 _inst_4)) (LinearMap.hasSmul.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_4 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_6 : Monoid.{u2} S] [_inst_7 : DistribMulAction.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_8 : SMulCommClass.{u1, u2, u3} R S M (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))] [_inst_9 : SMul.{u2, u1} S R] [_inst_10 : IsScalarTower.{u2, u1, u3} S R M _inst_9 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_6 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_7)))], SMulCommClass.{u3, u2, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (SMulZeroClass.toSMul.{u3, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (SMulWithZero.toSMulZeroClass.{u3, u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instZeroLinearMap.{u1, u1, u3, u3} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (MulZeroClass.toSMulWithZero.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (NonUnitalNonAssocSemiring.toMulZeroClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M _inst_1 _inst_2 _inst_4))))))) (LinearMap.instSMulLinearMap.{u1, u1, u2, u3, u3} R R S M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_6 _inst_7 _inst_8)
-Case conversion may be inaccurate. Consider using '#align module.End.smul_comm_class' Module.End.smulCommClass'ₓ'. -/
 instance Module.End.smulCommClass' [SMul S R] [IsScalarTower S R M] :
     SMulCommClass (Module.End R M) S (Module.End R M) :=
   SMulCommClass.symm _ _ _
@@ -1576,12 +1205,6 @@ instance applyModule : Module (Module.End R M) M
 #align linear_map.apply_module LinearMap.applyModule
 -/
 
-/- warning: linear_map.smul_def -> LinearMap.smul_def is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u2} M (SMul.smul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toHasSmul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (MulZeroClass.toHasZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MulZeroOneClass.toMulZeroClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MonoidWithZero.toMulZeroOneClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) f a) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f a)
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
-Case conversion may be inaccurate. Consider using '#align linear_map.smul_def LinearMap.smul_defₓ'. -/
 @[simp]
 protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
   rfl
@@ -1626,12 +1249,6 @@ variable (R M) [Semiring R] [AddCommMonoid M] [Module R M]
 
 variable [Monoid S] [DistribMulAction S M] [SMulCommClass S R M]
 
-/- warning: distrib_mul_action.to_linear_map -> DistribMulAction.toLinearMap is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {S : Type.{u2}} (M : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_4 : Monoid.{u2} S] [_inst_5 : DistribMulAction.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_6 : SMulCommClass.{u2, u1, u3} S R M (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_5))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_3))))], S -> (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_3 _inst_3)
-but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u2}} (M : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_4 : Monoid.{u2} S] [_inst_5 : DistribMulAction.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_6 : SMulCommClass.{u2, u1, u3} S R M (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_5))) (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_3))))], S -> (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_3 _inst_3)
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action.to_linear_map DistribMulAction.toLinearMapₓ'. -/
 /-- Each element of the monoid defines a linear map.
 
 This is a stronger version of `distrib_mul_action.to_add_monoid_hom`. -/
@@ -1642,12 +1259,6 @@ def toLinearMap (s : S) : M →ₗ[R] M where
   map_smul' a b := smul_comm _ _ _
 #align distrib_mul_action.to_linear_map DistribMulAction.toLinearMap
 
-/- warning: distrib_mul_action.to_module_End -> DistribMulAction.toModuleEnd is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {S : Type.{u2}} (M : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_4 : Monoid.{u2} S] [_inst_5 : DistribMulAction.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_6 : SMulCommClass.{u2, u1, u3} S R M (SMulZeroClass.toHasSmul.{u2, u3} S M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (DistribSMul.toSmulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_5))) (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_3))))], MonoidHom.{u2, u3} S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (Monoid.toMulOneClass.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (Semiring.toNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (Module.End.semiring.{u1, u3} R M _inst_1 _inst_2 _inst_3))))
-but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u2}} (M : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u3} M] [_inst_3 : Module.{u1, u3} R M _inst_1 _inst_2] [_inst_4 : Monoid.{u2} S] [_inst_5 : DistribMulAction.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2)] [_inst_6 : SMulCommClass.{u2, u1, u3} S R M (SMulZeroClass.toSMul.{u2, u3} S M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribSMul.toSMulZeroClass.{u2, u3} S M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (DistribMulAction.toDistribSMul.{u2, u3} S M _inst_4 (AddCommMonoid.toAddMonoid.{u3} M _inst_2) _inst_5))) (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_2)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_2 _inst_3))))], MonoidHom.{u2, u3} S (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (Monoid.toMulOneClass.{u2} S _inst_4) (MulZeroOneClass.toMulOneClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (NonAssocSemiring.toMulZeroOneClass.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (Semiring.toNonAssocSemiring.{u3} (Module.End.{u1, u3} R M _inst_1 _inst_2 _inst_3) (Module.End.semiring.{u1, u3} R M _inst_1 _inst_2 _inst_3))))
-Case conversion may be inaccurate. Consider using '#align distrib_mul_action.to_module_End DistribMulAction.toModuleEndₓ'. -/
 /-- Each element of the monoid defines a module endomorphism.
 
 This is a stronger version of `distrib_mul_action.to_add_monoid_End`. -/
@@ -1682,12 +1293,6 @@ def toModuleEnd : S →+* Module.End R M :=
 #align module.to_module_End Module.toModuleEnd
 -/
 
-/- warning: module.module_End_self -> Module.moduleEndSelf is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} R) (Module.End.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (MulOpposite.hasAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.module.End.hasMul.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (LinearMap.hasAdd.{u1, u1, u1, u1} R R R R _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1) (Semiring.toModule.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} R) (Module.End.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.mul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.instMulEnd.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.add.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.instAddLinearMap.{u1, u1, u1, u1} R R R R _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1) (Semiring.toModule.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))
-Case conversion may be inaccurate. Consider using '#align module.module_End_self Module.moduleEndSelfₓ'. -/
 /-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `module.End R R` induced by the right
 multiplication. -/
 @[simps]
@@ -1699,12 +1304,6 @@ def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.End R R :=
     right_inv := fun f => LinearMap.ext_ring <| one_mul _ }
 #align module.module_End_self Module.moduleEndSelf
 
-/- warning: module.module_End_self_op -> Module.moduleEndSelfOp is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} R (Module.End.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.module.End.hasMul.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (LinearMap.hasAdd.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) R R (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1) (Semiring.toOppositeModule.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} R (Module.End.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instMulEnd.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.instAddLinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) R R (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1) (Semiring.toOppositeModule.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))
-Case conversion may be inaccurate. Consider using '#align module.module_End_self_op Module.moduleEndSelfOpₓ'. -/
 /-- The canonical (semi)ring isomorphism from `R` to `module.End Rᵐᵒᵖ R` induced by the left
 multiplication. -/
 @[simps]
@@ -1716,23 +1315,11 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
     right_inv := fun f => LinearMap.ext_ring_op <| mul_one _ }
 #align module.module_End_self_op Module.moduleEndSelfOp
 
-/- warning: module.End.nat_cast_def -> Module.End.natCast_def is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))))) n) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (fun (_x : RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) => Nat -> (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.hasCoeToFun.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
-but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
-Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_def Module.End.natCast_defₓ'. -/
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
     (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
   rfl
 #align module.End.nat_cast_def Module.End.natCast_def
 
-/- warning: module.End.int_cast_def -> Module.End.intCast_def is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))))))) z) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (fun (_x : RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) => Int -> (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.hasCoeToFun.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.semiring (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
-but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
-Case conversion may be inaccurate. Consider using '#align module.End.int_cast_def Module.End.intCast_defₓ'. -/
 theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
     (↑z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=
   rfl
Diff
@@ -173,10 +173,7 @@ instance (priority := 100) [SemilinearMapClass F σ M M₃] : AddMonoidHomClass
     SemilinearMapClass.toAddHomClass F σ M
       M₃ with
     coe := fun f => (f : M → M₃)
-    map_zero := fun f =>
-      show f 0 = 0 by
-        rw [← zero_smul R (0 : M), map_smulₛₗ]
-        simp }
+    map_zero := fun f => show f 0 = 0 by rw [← zero_smul R (0 : M), map_smulₛₗ]; simp }
 
 -- `R` is an `out_param` so it's not dangerous
 @[nolint dangerous_instance]
@@ -441,11 +438,7 @@ Case conversion may be inaccurate. Consider using '#align linear_map.map_eq_zero
 -- TODO: generalize to `zero_hom_class`
 @[simp]
 theorem map_eq_zero_iff (h : Function.Injective f) {x : M} : f x = 0 ↔ x = 0 :=
-  ⟨fun w => by
-    apply h
-    simp [w], fun w => by
-    subst w
-    simp⟩
+  ⟨fun w => by apply h; simp [w], fun w => by subst w; simp⟩
 #align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iff
 
 section Pointwise
@@ -771,9 +764,7 @@ def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [Rin
     exact
       { toFun := g
         map_add' := fun x y => by rw [← h₁ (g (x + y)), ← h₁ (g x + g y)] <;> simp [h₂]
-        map_smul' := fun a b => by
-          rw [← h₁ (g (a • b)), ← h₁ (σ' a • g b)]
-          simp [h₂] }
+        map_smul' := fun a b => by rw [← h₁ (g (a • b)), ← h₁ (σ' a • g b)]; simp [h₂] }
 #align linear_map.inverse LinearMap.inverse
 
 end AddCommMonoid
@@ -880,9 +871,7 @@ but is expected to have type
   forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)} {g : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)}, (Eq.{max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 g)) -> (Eq.{max (succ u2) (succ u1)} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) f g)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.to_linear_map_injective DistribMulActionHom.toLinearMap_injectiveₓ'. -/
 theorem toLinearMap_injective {f g : M →+[R] M₂} (h : (f : M →ₗ[R] M₂) = (g : M →ₗ[R] M₂)) :
-    f = g := by
-  ext m
-  exact LinearMap.congr_fun h m
+    f = g := by ext m; exact LinearMap.congr_fun h m
 #align distrib_mul_action_hom.to_linear_map_injective DistribMulActionHom.toLinearMap_injective
 
 end DistribMulActionHom
@@ -1030,10 +1019,7 @@ but is expected to have type
   forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommMonoid.{u2} M] [_inst_2 : AddCommMonoid.{u1} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_1)) (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_2))) (LinearMap.{0, 0, u2, u1} Nat Nat Nat.semiring Nat.semiring (RingHom.id.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) M M₂ _inst_1 _inst_2 (AddCommMonoid.natModule.{u2} M _inst_1) (AddCommMonoid.natModule.{u1} M₂ _inst_2)) (AddMonoidHom.toNatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_nat_linear_map_injective AddMonoidHom.toNatLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toNatLinearMap_injective [AddCommMonoid M] [AddCommMonoid M₂] :
-    Function.Injective (@AddMonoidHom.toNatLinearMap M M₂ _ _) :=
-  by
-  intro f g h
-  ext
+    Function.Injective (@AddMonoidHom.toNatLinearMap M M₂ _ _) := by intro f g h; ext;
   exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_nat_linear_map_injective AddMonoidHom.toNatLinearMap_injective
 
@@ -1058,10 +1044,7 @@ but is expected to have type
   forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_int_linear_map_injective AddMonoidHom.toIntLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M₂] :
-    Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) :=
-  by
-  intro f g h
-  ext
+    Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) := by intro f g h; ext;
   exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_int_linear_map_injective AddMonoidHom.toIntLinearMap_injective
 
@@ -1092,11 +1075,8 @@ but is expected to have type
   forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_rat_linear_map_injective AddMonoidHom.toRatLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
-    [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) :=
-  by
-  intro f g h
-  ext
-  exact LinearMap.congr_fun h x
+    [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) := by
+  intro f g h; ext; exact LinearMap.congr_fun h x
 #align add_monoid_hom.to_rat_linear_map_injective AddMonoidHom.toRatLinearMap_injective
 
 /- warning: add_monoid_hom.coe_to_rat_linear_map -> AddMonoidHom.coe_toRatLinearMap is a dubious translation:
Diff
@@ -192,10 +192,7 @@ variable {F} (f : F) [i : SemilinearMapClass F σ M M₃]
 include i
 
 /- warning: semilinear_map_class.map_smul_inv -> SemilinearMapClass.map_smul_inv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} {F : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : F) [i : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f x)) (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_invₓ'. -/
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -251,10 +248,7 @@ theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
 #align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coe
 
 /- warning: linear_map.ext -> LinearMap.ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.ext LinearMap.extₓ'. -/
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
@@ -262,10 +256,7 @@ theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
 #align linear_map.ext LinearMap.ext
 
 /- warning: linear_map.copy -> LinearMap.copy is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.copy LinearMap.copyₓ'. -/
 /-- Copy of a `linear_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
@@ -277,10 +268,7 @@ protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f)
 #align linear_map.copy LinearMap.copy
 
 /- warning: linear_map.coe_copy -> LinearMap.coe_copy is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_copy LinearMap.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : ⇑(f.copy f' h) = f' :=
@@ -288,10 +276,7 @@ theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) :
 #align linear_map.coe_copy LinearMap.coe_copy
 
 /- warning: linear_map.copy_eq -> LinearMap.copy_eq is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.copy_eq LinearMap.copy_eqₓ'. -/
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
   FunLike.ext' h
@@ -306,10 +291,7 @@ protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+*
 initialize_simps_projections LinearMap (toFun → apply)
 
 /- warning: linear_map.coe_mk -> LinearMap.coe_mk is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : M -> M₃) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (f x) (f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (f x))), Eq.{max (succ u3) (succ u4)} ((fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) f
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
@@ -382,20 +364,14 @@ theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
 #align linear_map.coe_injective LinearMap.coe_injective
 
 /- warning: linear_map.congr_arg -> LinearMap.congr_arg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u3} M x x') -> (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_arg LinearMap.congr_argₓ'. -/
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
   FunLike.congr_arg f
 #align linear_map.congr_arg LinearMap.congr_arg
 
 /- warning: linear_map.congr_fun -> LinearMap.congr_fun is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_fun LinearMap.congr_funₓ'. -/
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
@@ -403,20 +379,14 @@ protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
 #align linear_map.congr_fun LinearMap.congr_fun
 
 /- warning: linear_map.ext_iff -> LinearMap.ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_iff LinearMap.ext_iffₓ'. -/
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
 #align linear_map.ext_iff LinearMap.ext_iff
 
 /- warning: linear_map.mk_coe -> LinearMap.mk_coe is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f) h₁ h₂) f
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.mk_coe LinearMap.mk_coeₓ'. -/
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
@@ -426,30 +396,21 @@ theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h
 variable (fₗ gₗ f g)
 
 /- warning: linear_map.map_add -> LinearMap.map_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_add LinearMap.map_addₓ'. -/
 protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
   map_add f x y
 #align linear_map.map_add LinearMap.map_add
 
 /- warning: linear_map.map_zero -> LinearMap.map_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_zero LinearMap.map_zeroₓ'. -/
 protected theorem map_zero : f 0 = 0 :=
   map_zero f
 #align linear_map.map_zero LinearMap.map_zero
 
 /- warning: linear_map.map_smulₛₗ -> LinearMap.map_smulₛₗ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
@@ -468,20 +429,14 @@ protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
 #align linear_map.map_smul LinearMap.map_smul
 
 /- warning: linear_map.map_smul_inv -> LinearMap.map_smul_inv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
 #align linear_map.map_smul_inv LinearMap.map_smul_inv
 
 /- warning: linear_map.map_eq_zero_iff -> LinearMap.map_eq_zero_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u3, succ u4} M M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))) (Eq.{succ u3} M x (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iffₓ'. -/
 -- TODO: generalize to `zero_hom_class`
 @[simp]
@@ -500,10 +455,7 @@ open Pointwise
 variable (M M₃ σ) {F : Type _} (h : F)
 
 /- warning: image_smul_setₛₗ -> image_smul_setₛₗ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u3} M), Eq.{succ u4} (Set.{u4} M₃) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c s)) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s))
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
+<too large>
 Case conversion may be inaccurate. Consider using '#align image_smul_setₛₗ image_smul_setₛₗₓ'. -/
 @[simp]
 theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
@@ -516,10 +468,7 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
 #align image_smul_setₛₗ image_smul_setₛₗ
 
 /- warning: preimage_smul_setₛₗ -> preimage_smul_setₛₗ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) c) -> (forall (s : Set.{u4} M₃), Eq.{succ u3} (Set.{u3} M) (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) s)) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s)))
-but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align preimage_smul_setₛₗ preimage_smul_setₛₗₓ'. -/
 theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
     h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
@@ -537,20 +486,14 @@ theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : I
 variable (R M₂)
 
 /- warning: image_smul_set -> image_smul_set is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u1, u2, u3} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] (c : R) (s : Set.{u2} M), Eq.{succ u3} (Set.{u3} M₂) (Set.image.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10))))) c s)) (SMul.smul.{u1, u3} R (Set.{u3} M₂) (Set.smulSet.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11))))) c (Set.image.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) s))
-but is expected to have type
-  forall (R : Type.{u3}) (M : Type.{u2}) (M₂ : Type.{u1}) [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u3, u2, u1} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₂) (Set.image.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) (HSMul.hSMul.{u3, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u3, u2} R (Set.{u2} M) (Set.smulSet.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} R (Set.{u1} M₂) (Set.{u1} M₂) (instHSMul.{u3, u1} R (Set.{u1} M₂) (Set.smulSet.{u3, u1} R M₂ (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u3, u1} R M₂ (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} R M₂ (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (Module.toMulActionWithZero.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))))) c (Set.image.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) s))
+<too large>
 Case conversion may be inaccurate. Consider using '#align image_smul_set image_smul_setₓ'. -/
 theorem image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) : h '' (c • s) = c • h '' s :=
   image_smul_setₛₗ _ _ _ h c s
 #align image_smul_set image_smul_set
 
 /- warning: preimage_smul_set -> preimage_smul_set is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u1, u2, u3} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] {c : R}, (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) c) -> (forall (s : Set.{u3} M₂), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) (SMul.smul.{u1, u3} R (Set.{u3} M₂) (Set.smulSet.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11))))) c s)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10))))) c (Set.preimage.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) s)))
-but is expected to have type
-  forall (R : Type.{u3}) (M : Type.{u2}) (M₂ : Type.{u1}) [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u3, u2, u1} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] {c : R}, (IsUnit.{u3} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) c) -> (forall (s : Set.{u1} M₂), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) (HSMul.hSMul.{u3, u1, u1} R (Set.{u1} M₂) (Set.{u1} M₂) (instHSMul.{u3, u1} R (Set.{u1} M₂) (Set.smulSet.{u3, u1} R M₂ (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u3, u1} R M₂ (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} R M₂ (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (Module.toMulActionWithZero.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))))) c s)) (HSMul.hSMul.{u3, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u3, u2} R (Set.{u2} M) (Set.smulSet.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) s)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align preimage_smul_set preimage_smul_setₓ'. -/
 theorem preimage_smul_set [LinearMapClass F R M M₂] {c : R} (hc : IsUnit c) (s : Set M₂) :
     h ⁻¹' (c • s) = c • h ⁻¹' s :=
@@ -584,10 +527,7 @@ instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring
 -/
 
 /- warning: linear_map.map_smul_of_tower -> LinearMap.map_smul_of_tower is a dubious translation:
-lean 3 declaration is
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u2} M₂] {R : Type.{u3}} {S : Type.{u4}} [_inst_13 : Semiring.{u4} S] [_inst_14 : SMul.{u3, u1} R M] [_inst_15 : Module.{u4, u1} S M _inst_13 _inst_3] [_inst_16 : SMul.{u3, u2} R M₂] [_inst_17 : Module.{u4, u2} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u1, u2, u3, u4} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u2} M₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ (SMul.smul.{u3, u1} R M _inst_14 c x)) (SMul.smul.{u3, u2} R M₂ _inst_16 c (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ x))
-but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_of_tower LinearMap.map_smul_of_towerₓ'. -/
 @[simp]
 theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
@@ -635,10 +575,7 @@ def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
 -/
 
 /- warning: linear_map.coe_restrict_scalars -> LinearMap.coe_restrictScalars is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u4)} (M -> M₂) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ)
-but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalarsₓ'. -/
 @[simp]
 theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
@@ -646,10 +583,7 @@ theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R f
 #align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalars
 
 /- warning: linear_map.restrict_scalars_apply -> LinearMap.restrictScalars_apply is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ x)
-but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_apply LinearMap.restrictScalars_applyₓ'. -/
 theorem restrictScalars_apply (fₗ : M →ₗ[S] M₂) (x) : restrictScalars R fₗ x = fₗ x :=
   rfl
@@ -667,10 +601,7 @@ theorem restrictScalars_injective :
 #align linear_map.restrict_scalars_injective LinearMap.restrictScalars_injective
 
 /- warning: linear_map.restrict_scalars_inj -> LinearMap.restrictScalars_inj is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (gₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Iff (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 gₗ)) (Eq.{max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) fₗ gₗ)
-but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (gₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Iff (Eq.{max (succ u3) (succ u2)} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 gₗ)) (Eq.{max (succ u3) (succ u2)} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) fₗ gₗ)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_inj LinearMap.restrictScalars_injₓ'. -/
 @[simp]
 theorem restrictScalars_inj (fₗ gₗ : M →ₗ[S] M₂) :
@@ -715,10 +646,7 @@ theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1
 #align linear_map.ext_ring_iff LinearMap.ext_ring_iff
 
 /- warning: linear_map.ext_ring_op -> LinearMap.ext_ring_op is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} (MulOpposite.{u1} R) S (MulOpposite.nonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) f g)
-but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.nonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_op LinearMap.ext_ring_opₓ'. -/
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
@@ -772,10 +700,7 @@ infixr:80 " ∘ₗ " =>
 include σ₁₃
 
 /- warning: linear_map.comp_apply -> LinearMap.comp_apply is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} M₃ (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
-but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_apply LinearMap.comp_applyₓ'. -/
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
@@ -786,10 +711,7 @@ omit σ₁₃
 include σ₁₃
 
 /- warning: linear_map.coe_comp -> LinearMap.coe_comp is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u4) (succ u6)} ((fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u4, succ u5, succ u6} M₁ M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
-but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_comp LinearMap.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
@@ -799,10 +721,7 @@ theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
 omit σ₁₃
 
 /- warning: linear_map.comp_id -> LinearMap.comp_id is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {R₃ : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_4 : Semiring.{u1} R₂] [_inst_5 : Semiring.{u2} R₃] [_inst_8 : AddCommMonoid.{u3} M₂] [_inst_9 : AddCommMonoid.{u4} M₃] {module_M₂ : Module.{u1, u3} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u2, u4} R₃ M₃ _inst_5 _inst_9} {σ₂₃ : RingHom.{u1, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_5)} (f : LinearMap.{u1, u2, u3, u4} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (LinearMap.comp.{u1, u1, u2, u3, u3, u4} R₂ R₂ R₃ M₂ M₂ M₃ _inst_4 _inst_4 _inst_5 _inst_8 _inst_8 _inst_9 module_M₂ module_M₂ module_M₃ (RingHom.id.{u1} R₂ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_4)) σ₂₃ σ₂₃ (RingHomCompTriple.ids.{u1, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃) f (LinearMap.id.{u1, u3} R₂ M₂ _inst_4 _inst_8 module_M₂)) f
-but is expected to have type
-  forall {R₂ : Type.{u2}} {R₃ : Type.{u1}} {M₂ : Type.{u4}} {M₃ : Type.{u3}} [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_8 : AddCommMonoid.{u4} M₂] [_inst_9 : AddCommMonoid.{u3} M₃] {module_M₂ : Module.{u2, u4} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u3} R₃ M₃ _inst_5 _inst_9} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} (f : LinearMap.{u2, u1, u4, u3} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃), Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (LinearMap.comp.{u2, u2, u1, u4, u4, u3} R₂ R₂ R₃ M₂ M₂ M₃ _inst_4 _inst_4 _inst_5 _inst_8 _inst_8 _inst_9 module_M₂ module_M₂ module_M₃ (RingHom.id.{u2} R₂ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)) σ₂₃ σ₂₃ (RingHomCompTriple.ids.{u2, u1} R₂ R₃ _inst_4 _inst_5 σ₂₃) f (LinearMap.id.{u2, u4} R₂ M₂ _inst_4 _inst_8 module_M₂)) f
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_id LinearMap.comp_idₓ'. -/
 @[simp]
 theorem comp_id : f.comp id = f :=
@@ -810,10 +729,7 @@ theorem comp_id : f.comp id = f :=
 #align linear_map.comp_id LinearMap.comp_id
 
 /- warning: linear_map.id_comp -> LinearMap.id_comp is a dubious translation:
-lean 3 declaration is
-  forall {R₂ : Type.{u1}} {R₃ : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_4 : Semiring.{u1} R₂] [_inst_5 : Semiring.{u2} R₃] [_inst_8 : AddCommMonoid.{u3} M₂] [_inst_9 : AddCommMonoid.{u4} M₃] {module_M₂ : Module.{u1, u3} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u2, u4} R₃ M₃ _inst_5 _inst_9} {σ₂₃ : RingHom.{u1, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u1} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_5)} (f : LinearMap.{u1, u2, u3, u4} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (LinearMap.comp.{u1, u2, u2, u3, u4, u4} R₂ R₃ R₃ M₂ M₃ M₃ _inst_4 _inst_5 _inst_5 _inst_8 _inst_9 _inst_9 module_M₂ module_M₃ module_M₃ σ₂₃ (RingHom.id.{u2} R₃ (Semiring.toNonAssocSemiring.{u2} R₃ _inst_5)) σ₂₃ (RingHomCompTriple.right_ids.{u1, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃) (LinearMap.id.{u2, u4} R₃ M₃ _inst_5 _inst_9 module_M₃) f) f
-but is expected to have type
-  forall {R₂ : Type.{u2}} {R₃ : Type.{u1}} {M₂ : Type.{u4}} {M₃ : Type.{u3}} [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_8 : AddCommMonoid.{u4} M₂] [_inst_9 : AddCommMonoid.{u3} M₃] {module_M₂ : Module.{u2, u4} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u3} R₃ M₃ _inst_5 _inst_9} {σ₂₃ : RingHom.{u2, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} (f : LinearMap.{u2, u1, u4, u3} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃), Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (LinearMap.comp.{u2, u1, u1, u4, u3, u3} R₂ R₃ R₃ M₂ M₃ M₃ _inst_4 _inst_5 _inst_5 _inst_8 _inst_9 _inst_9 module_M₂ module_M₃ module_M₃ σ₂₃ (RingHom.id.{u1} R₃ (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)) σ₂₃ (RingHomCompTriple.right_ids.{u2, u1} R₂ R₃ _inst_4 _inst_5 σ₂₃) (LinearMap.id.{u1, u3} R₃ M₃ _inst_5 _inst_9 module_M₃) f) f
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.id_comp LinearMap.id_compₓ'. -/
 @[simp]
 theorem id_comp : id.comp f = f :=
@@ -825,20 +741,14 @@ variable {f g} {f' : M₂ →ₛₗ[σ₂₃] M₃} {g' : M₁ →ₛₗ[σ₁
 include σ₁₃
 
 /- warning: linear_map.cancel_right -> LinearMap.cancel_right is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u4, succ u5} M₁ M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
-but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_right LinearMap.cancel_rightₓ'. -/
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h => ext <| hg.forall.2 (ext_iff.1 h), fun h => h ▸ rfl⟩
 #align linear_map.cancel_right LinearMap.cancel_right
 
 /- warning: linear_map.cancel_left -> LinearMap.cancel_left is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u5, succ u6} M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
-but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_left LinearMap.cancel_leftₓ'. -/
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h => ext fun x => hf <| by rw [← comp_apply, h, comp_apply], fun h => h ▸ rfl⟩
@@ -851,10 +761,7 @@ end
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
 
 /- warning: linear_map.inverse -> LinearMap.inverse is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
-but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.inverse LinearMap.inverseₓ'. -/
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
@@ -880,20 +787,14 @@ variable {module_M : Module R M} {module_M₂ : Module S M₂} {σ : R →+* S}
 variable (f : M →ₛₗ[σ] M₂)
 
 /- warning: linear_map.map_neg -> LinearMap.map_neg is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (SubNegMonoid.toHasNeg.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3))) x)) (Neg.neg.{u4} M₂ (SubNegMonoid.toHasNeg.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_neg LinearMap.map_negₓ'. -/
 protected theorem map_neg (x : M) : f (-x) = -f x :=
   map_neg f x
 #align linear_map.map_neg LinearMap.map_neg
 
 /- warning: linear_map.map_sub -> LinearMap.map_sub is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toHasSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} M₂ M₂ M₂ (instHSub.{u4} M₂ (SubNegMonoid.toHasSub.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
-but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_sub LinearMap.map_subₓ'. -/
 protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
@@ -965,10 +866,7 @@ theorem [anonymous] (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
 #align distrib_mul_action_hom.to_linear_map_eq_coe [anonymous]
 
 /- warning: distrib_mul_action_hom.coe_to_linear_map -> DistribMulActionHom.coe_toLinearMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (fun (_x : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) => M -> M₂) ([anonymous].{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) f)
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMapₓ'. -/
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
@@ -1238,10 +1136,7 @@ instance : SMul S (M →ₛₗ[σ₁₂] M₂) :=
       map_smul' := fun c x => by simp [Pi.smul_apply, smul_comm (σ₁₂ c)] }⟩
 
 /- warning: linear_map.smul_apply -> LinearMap.smul_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u5} M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f) x) (SMul.smul.{u3, u5} S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
-but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_apply LinearMap.smul_applyₓ'. -/
 @[simp]
 theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f) x = a • f x :=
@@ -1249,10 +1144,7 @@ theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f)
 #align linear_map.smul_apply LinearMap.smul_apply
 
 /- warning: linear_map.coe_smul -> LinearMap.coe_smul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{succ (max u4 u5)} (M -> M₂) (coeFn.{succ (max u4 u5), succ (max u4 u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f)) (SMul.smul.{u3, max u4 u5} S (M -> M₂) (Function.hasSMul.{u4, u3, u5} M S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
-but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_smul LinearMap.coe_smulₓ'. -/
 theorem coe_smul (a : S) (f : M →ₛₗ[σ₁₂] M₂) : ⇑(a • f) = a • f :=
   rfl
@@ -1295,10 +1187,7 @@ instance : Zero (M →ₛₗ[σ₁₂] M₂) :=
       map_smul' := by simp }⟩
 
 /- warning: linear_map.zero_apply -> LinearMap.zero_apply is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (OfNat.mk.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.zero.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasZero.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)))) x) (OfNat.ofNat.{u4} M₂ 0 (OfNat.mk.{u4} M₂ 0 (Zero.zero.{u4} M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))))))
-but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.zero_apply LinearMap.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
@@ -1306,10 +1195,7 @@ theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
 #align linear_map.zero_apply LinearMap.zero_apply
 
 /- warning: linear_map.comp_zero -> LinearMap.comp_zero is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_6 : AddCommMonoid.{u6} M₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u3, u6} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (g : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 g (OfNat.ofNat.{max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (OfNat.mk.{max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.zero.{max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasZero.{u1, u2, u4, u5} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))))) (OfNat.ofNat.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) 0 (OfNat.mk.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) 0 (Zero.zero.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.hasZero.{u1, u3, u4, u6} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃))))
-but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u6}} {R₃ : Type.{u5}} {M : Type.{u2}} {M₂ : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u6} R₂] [_inst_3 : Semiring.{u5} R₃] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u1, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u6, u4} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u5, u3} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u1, u6} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u6} R₂ _inst_2)} {σ₂₃ : RingHom.{u6, u5} R₂ R₃ (Semiring.toNonAssocSemiring.{u6} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u5} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u5} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u6, u5} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (g : LinearMap.{u6, u5, u4, u3} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u5, u2, u3} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u1, u6, u5, u2, u4, u3} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 g (OfNat.ofNat.{max u2 u4} (LinearMap.{u1, u6, u2, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u2 u4} (LinearMap.{u1, u6, u2, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u1, u6, u2, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)))) (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u5, u2, u3} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) 0 (Zero.toOfNat0.{max u2 u3} (LinearMap.{u1, u5, u2, u3} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instZeroLinearMap.{u1, u5, u2, u3} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_zero LinearMap.comp_zeroₓ'. -/
 @[simp]
 theorem comp_zero (g : M₂ →ₛₗ[σ₂₃] M₃) : (g.comp (0 : M →ₛₗ[σ₁₂] M₂) : M →ₛₗ[σ₁₃] M₃) = 0 :=
@@ -1317,10 +1203,7 @@ theorem comp_zero (g : M₂ →ₛₗ[σ₂₃] M₃) : (g.comp (0 : M →ₛₗ
 #align linear_map.comp_zero LinearMap.comp_zero
 
 /- warning: linear_map.zero_comp -> LinearMap.zero_comp is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_6 : AddCommMonoid.{u6} M₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u3, u6} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 (OfNat.ofNat.{max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) 0 (OfNat.mk.{max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) 0 (Zero.zero.{max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.hasZero.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_2 _inst_3 _inst_5 _inst_6 _inst_11 _inst_12 σ₂₃)))) f) (OfNat.ofNat.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) 0 (OfNat.mk.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) 0 (Zero.zero.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.hasZero.{u1, u3, u4, u6} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃))))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u1}} {M : Type.{u4}} {M₂ : Type.{u3}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u1} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u5, u3} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u1, u2} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u1} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11), Eq.{max (succ u4) (succ u2)} (LinearMap.{u6, u1, u4, u2} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u6, u5, u1, u4, u3, u2} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 (OfNat.ofNat.{max u3 u2} (LinearMap.{u5, u1, u3, u2} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) 0 (Zero.toOfNat0.{max u3 u2} (LinearMap.{u5, u1, u3, u2} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instZeroLinearMap.{u5, u1, u3, u2} R₂ R₃ M₂ M₃ _inst_2 _inst_3 _inst_5 _inst_6 _inst_11 _inst_12 σ₂₃))) f) (OfNat.ofNat.{max u4 u2} (LinearMap.{u6, u1, u4, u2} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) 0 (Zero.toOfNat0.{max u4 u2} (LinearMap.{u6, u1, u4, u2} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instZeroLinearMap.{u6, u1, u4, u2} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.zero_comp LinearMap.zero_compₓ'. -/
 @[simp]
 theorem zero_comp (f : M →ₛₗ[σ₁₂] M₂) : ((0 : M₂ →ₛₗ[σ₂₃] M₃).comp f : M →ₛₗ[σ₁₃] M₃) = 0 :=
@@ -1349,10 +1232,7 @@ instance : Add (M →ₛₗ[σ₁₂] M₂) :=
       map_smul' := by simp [smul_add] }⟩
 
 /- warning: linear_map.add_apply -> LinearMap.add_apply is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasAdd.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u4, u4, u4} M₂ M₂ M₂ (instHAdd.{u4} M₂ (AddZeroClass.toHasAdd.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
-but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.add_apply LinearMap.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x + g x :=
@@ -1360,10 +1240,7 @@ theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x +
 #align linear_map.add_apply LinearMap.add_apply
 
 /- warning: linear_map.add_comp -> LinearMap.add_comp is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_6 : AddCommMonoid.{u6} M₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u3, u6} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (h : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 (HAdd.hAdd.{max u5 u6, max u5 u6, max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (instHAdd.{max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.hasAdd.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_2 _inst_3 _inst_5 _inst_6 _inst_11 _inst_12 σ₂₃)) h g) f) (HAdd.hAdd.{max u4 u6, max u4 u6, max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (instHAdd.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.hasAdd.{u1, u3, u4, u6} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃)) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u2}} {M : Type.{u4}} {M₂ : Type.{u3}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u2} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u5, u3} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u2, u1} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u2} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u2} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (h : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u4) (succ u1)} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 (HAdd.hAdd.{max u3 u1, max u3 u1, max u3 u1} (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (instHAdd.{max u3 u1} (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instAddLinearMap.{u5, u2, u3, u1} R₂ R₃ M₂ M₃ _inst_2 _inst_3 _inst_5 _inst_6 _inst_11 _inst_12 σ₂₃)) h g) f) (HAdd.hAdd.{max u4 u1, max u4 u1, max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (instHAdd.{max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instAddLinearMap.{u6, u2, u4, u1} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃)) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.add_comp LinearMap.add_compₓ'. -/
 theorem add_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃] M₃) :
     ((h + g).comp f : M →ₛₗ[σ₁₃] M₃) = h.comp f + g.comp f :=
@@ -1371,10 +1248,7 @@ theorem add_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃
 #align linear_map.add_comp LinearMap.add_comp
 
 /- warning: linear_map.comp_add -> LinearMap.comp_add is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_6 : AddCommMonoid.{u6} M₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u3, u6} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (h : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h (HAdd.hAdd.{max u4 u5, max u4 u5, max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasAdd.{u1, u2, u4, u5} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g)) (HAdd.hAdd.{max u4 u6, max u4 u6, max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (instHAdd.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.hasAdd.{u1, u3, u4, u6} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃)) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h g))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u2}} {M : Type.{u4}} {M₂ : Type.{u3}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u2} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u5, u3} R₂ M₂ _inst_2 _inst_5] [_inst_12 : Module.{u2, u1} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u2} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u2} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (h : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u4) (succ u1)} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h (HAdd.hAdd.{max u4 u3, max u4 u3, max u4 u3} (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u4 u3} (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u6, u5, u4, u3} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g)) (HAdd.hAdd.{max u4 u1, max u4 u1, max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (instHAdd.{max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instAddLinearMap.{u6, u2, u4, u1} R₁ R₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_10 _inst_12 σ₁₃)) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 σ₁₂ σ₂₃ σ₁₃ _inst_16 h g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_add LinearMap.comp_addₓ'. -/
 theorem comp_add (f g : M →ₛₗ[σ₁₂] M₂) (h : M₂ →ₛₗ[σ₂₃] M₃) :
     (h.comp (f + g) : M →ₛₗ[σ₁₃] M₃) = h.comp f + h.comp g :=
@@ -1393,10 +1267,7 @@ instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
       map_smul' := by simp }⟩
 
 /- warning: linear_map.neg_apply -> LinearMap.neg_apply is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasNeg.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u4} N₂ (SubNegMonoid.toHasNeg.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
-but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.neg_apply LinearMap.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
@@ -1406,10 +1277,7 @@ theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
 include σ₁₃
 
 /- warning: linear_map.neg_comp -> LinearMap.neg_comp is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {N₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommGroup.{u6} N₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] [_inst_15 : Module.{u3, u6} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 (Neg.neg.{max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.hasNeg.{u2, u3, u5, u6} R₂ R₃ M₂ N₃ _inst_2 _inst_3 _inst_5 _inst_9 _inst_11 _inst_15 σ₂₃) g) f) (Neg.neg.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.hasNeg.{u1, u3, u4, u6} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u2}} {M : Type.{u4}} {M₂ : Type.{u3}} {N₃ : Type.{u1}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u2} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_9 : AddCommGroup.{u1} N₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u5, u3} R₂ M₂ _inst_2 _inst_5] [_inst_15 : Module.{u2, u1} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9)] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u2} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u2} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15), Eq.{max (succ u4) (succ u1)} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 (Neg.neg.{max u3 u1} (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.instNegLinearMapToAddCommMonoid.{u5, u2, u3, u1} R₂ R₃ M₂ N₃ _inst_2 _inst_3 _inst_5 _inst_9 _inst_11 _inst_15 σ₂₃) g) f) (Neg.neg.{max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.instNegLinearMapToAddCommMonoid.{u6, u2, u4, u1} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.neg_comp LinearMap.neg_compₓ'. -/
 @[simp]
 theorem neg_comp (f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] N₃) : (-g).comp f = -g.comp f :=
@@ -1417,10 +1285,7 @@ theorem neg_comp (f : M →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃]
 #align linear_map.neg_comp LinearMap.neg_comp
 
 /- warning: linear_map.comp_neg -> LinearMap.comp_neg is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {N₂ : Type.{u5}} {N₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_8 : AddCommGroup.{u5} N₂] [_inst_9 : AddCommGroup.{u6} N₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u5} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8)] [_inst_15 : Module.{u3, u6} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ N₂ N₃ (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_14 _inst_15), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g (Neg.neg.{max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasNeg.{u1, u2, u4, u5} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f)) (Neg.neg.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.hasNeg.{u1, u3, u4, u6} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u2}} {M : Type.{u4}} {N₂ : Type.{u3}} {N₃ : Type.{u1}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u2} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_8 : AddCommGroup.{u3} N₂] [_inst_9 : AddCommGroup.{u1} N₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u5, u3} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8)] [_inst_15 : Module.{u2, u1} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9)] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u2} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u2} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ N₂ N₃ (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_14 _inst_15), Eq.{max (succ u4) (succ u1)} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g (Neg.neg.{max u4 u3} (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u6, u5, u4, u3} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f)) (Neg.neg.{max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.instNegLinearMapToAddCommMonoid.{u6, u2, u4, u1} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_neg LinearMap.comp_negₓ'. -/
 @[simp]
 theorem comp_neg (f : M →ₛₗ[σ₁₂] N₂) (g : N₂ →ₛₗ[σ₂₃] N₃) : g.comp (-f) = -g.comp f :=
@@ -1437,10 +1302,7 @@ instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
       map_smul' := fun r x => by simp [Pi.sub_apply, map_smul, smul_sub] }⟩
 
 /- warning: linear_map.sub_apply -> LinearMap.sub_apply is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasSub.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u4, u4, u4} N₂ N₂ N₂ (instHSub.{u4} N₂ (SubNegMonoid.toHasSub.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
-but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.sub_apply LinearMap.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x - g x :=
@@ -1450,10 +1312,7 @@ theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x -
 include σ₁₃
 
 /- warning: linear_map.sub_comp -> LinearMap.sub_comp is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {N₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommGroup.{u6} N₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] [_inst_15 : Module.{u3, u6} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15) (h : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 (HSub.hSub.{max u5 u6, max u5 u6, max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15) (instHSub.{max u5 u6} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.hasSub.{u2, u3, u5, u6} R₂ R₃ M₂ N₃ _inst_2 _inst_3 _inst_5 _inst_9 _inst_11 _inst_15 σ₂₃)) g h) f) (HSub.hSub.{max u4 u6, max u4 u6, max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (instHSub.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.hasSub.{u1, u3, u4, u6} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃)) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u2}} {M : Type.{u4}} {M₂ : Type.{u3}} {N₃ : Type.{u1}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u2} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_9 : AddCommGroup.{u1} N₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u5, u3} R₂ M₂ _inst_2 _inst_5] [_inst_15 : Module.{u2, u1} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9)] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u2} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u2} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15) (h : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15), Eq.{max (succ u4) (succ u1)} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 (HSub.hSub.{max u3 u1, max u3 u1, max u3 u1} (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15) (instHSub.{max u3 u1} (LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ N₃ _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_11 _inst_15) (LinearMap.instSubLinearMapToAddCommMonoid.{u5, u2, u3, u1} R₂ R₃ M₂ N₃ _inst_2 _inst_3 _inst_5 _inst_9 _inst_11 _inst_15 σ₂₃)) g h) f) (HSub.hSub.{max u4 u1, max u4 u1, max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (instHSub.{max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.instSubLinearMapToAddCommMonoid.{u6, u2, u4, u1} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃)) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 g f) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M M₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_11 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.sub_comp LinearMap.sub_compₓ'. -/
 theorem sub_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃] N₃) :
     (g - h).comp f = g.comp f - h.comp f :=
@@ -1461,10 +1320,7 @@ theorem sub_comp (f : M →ₛₗ[σ₁₂] M₂) (g h : M₂ →ₛₗ[σ₂₃
 #align linear_map.sub_comp LinearMap.sub_comp
 
 /- warning: linear_map.comp_sub -> LinearMap.comp_sub is a dubious translation:
-lean 3 declaration is
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M : Type.{u4}} {N₂ : Type.{u5}} {N₃ : Type.{u6}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_8 : AddCommGroup.{u5} N₂] [_inst_9 : AddCommGroup.{u6} N₃] [_inst_10 : Module.{u1, u4} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u5} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8)] [_inst_15 : Module.{u3, u6} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (h : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_2 _inst_3 σ₂₃ N₂ N₃ (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_14 _inst_15), Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h (HSub.hSub.{max u4 u5, max u4 u5, max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u4 u5} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasSub.{u1, u2, u4, u5} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) g f)) (HSub.hSub.{max u4 u6, max u4 u6, max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (instHSub.{max u4 u6} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.hasSub.{u1, u3, u4, u6} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃)) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u6} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f))
-but is expected to have type
-  forall {R₁ : Type.{u6}} {R₂ : Type.{u5}} {R₃ : Type.{u2}} {M : Type.{u4}} {N₂ : Type.{u3}} {N₃ : Type.{u1}} [_inst_1 : Semiring.{u6} R₁] [_inst_2 : Semiring.{u5} R₂] [_inst_3 : Semiring.{u2} R₃] [_inst_4 : AddCommMonoid.{u4} M] [_inst_8 : AddCommGroup.{u3} N₂] [_inst_9 : AddCommGroup.{u1} N₃] [_inst_10 : Module.{u6, u4} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u5, u3} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8)] [_inst_15 : Module.{u2, u1} R₃ N₃ _inst_3 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9)] {σ₁₂ : RingHom.{u6, u5} R₁ R₂ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2)} {σ₂₃ : RingHom.{u5, u2} R₂ R₃ (Semiring.toNonAssocSemiring.{u5} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} {σ₁₃ : RingHom.{u6, u2} R₁ R₃ (Semiring.toNonAssocSemiring.{u6} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₃ _inst_3)} [_inst_16 : RingHomCompTriple.{u6, u5, u2} R₁ R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (h : LinearMap.{u5, u2, u3, u1} R₂ R₃ _inst_2 _inst_3 σ₂₃ N₂ N₃ (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_14 _inst_15), Eq.{max (succ u4) (succ u1)} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h (HSub.hSub.{max u4 u3, max u4 u3, max u4 u3} (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u4 u3} (LinearMap.{u6, u5, u4, u3} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u6, u5, u4, u3} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) g f)) (HSub.hSub.{max u4 u1, max u4 u1, max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (instHSub.{max u4 u1} (LinearMap.{u6, u2, u4, u1} R₁ R₃ _inst_1 _inst_3 σ₁₃ M N₃ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_15) (LinearMap.instSubLinearMapToAddCommMonoid.{u6, u2, u4, u1} R₁ R₃ M N₃ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 _inst_15 σ₁₃)) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h g) (LinearMap.comp.{u6, u5, u2, u4, u3, u1} R₁ R₂ R₃ M N₂ N₃ _inst_1 _inst_2 _inst_3 _inst_4 (AddCommGroup.toAddCommMonoid.{u3} N₂ _inst_8) (AddCommGroup.toAddCommMonoid.{u1} N₃ _inst_9) _inst_10 _inst_14 _inst_15 σ₁₂ σ₂₃ σ₁₃ _inst_16 h f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_sub LinearMap.comp_subₓ'. -/
 theorem comp_sub (f g : M →ₛₗ[σ₁₂] N₂) (h : N₂ →ₛₗ[σ₂₃] N₃) :
     h.comp (g - f) = h.comp g - h.comp f :=
@@ -1508,10 +1364,7 @@ instance : DistribMulAction S (M →ₛₗ[σ₁₂] M₂)
 include σ₁₃
 
 /- warning: linear_map.smul_comp -> LinearMap.smul_comp is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {S₃ : Type.{u4}} {M : Type.{u5}} {M₂ : Type.{u6}} {M₃ : Type.{u7}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_3 : Semiring.{u3} R₃] [_inst_4 : AddCommMonoid.{u5} M] [_inst_5 : AddCommMonoid.{u6} M₂] [_inst_6 : AddCommMonoid.{u7} M₃] [_inst_7 : Module.{u1, u5} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u6} R₂ M₂ _inst_2 _inst_5] [_inst_9 : Module.{u3, u7} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} {σ₁₃ : RingHom.{u1, u3} R R₃ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_3)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] [_inst_14 : Monoid.{u4} S₃] [_inst_15 : DistribMulAction.{u4, u7} S₃ M₃ _inst_14 (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6)] [_inst_16 : SMulCommClass.{u3, u4, u7} R₃ S₃ M₃ (SMulZeroClass.toHasSmul.{u3, u7} R₃ M₃ (AddZeroClass.toHasZero.{u7} M₃ (AddMonoid.toAddZeroClass.{u7} M₃ (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u3, u7} R₃ M₃ (MulZeroClass.toHasZero.{u3} R₃ (MulZeroOneClass.toMulZeroClass.{u3} R₃ (MonoidWithZero.toMulZeroOneClass.{u3} R₃ (Semiring.toMonoidWithZero.{u3} R₃ _inst_3)))) (AddZeroClass.toHasZero.{u7} M₃ (AddMonoid.toAddZeroClass.{u7} M₃ (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u3, u7} R₃ M₃ (Semiring.toMonoidWithZero.{u3} R₃ _inst_3) (AddZeroClass.toHasZero.{u7} M₃ (AddMonoid.toAddZeroClass.{u7} M₃ (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6))) (Module.toMulActionWithZero.{u3, u7} R₃ M₃ _inst_3 _inst_6 _inst_9)))) (SMulZeroClass.toHasSmul.{u4, u7} S₃ M₃ (AddZeroClass.toHasZero.{u7} M₃ (AddMonoid.toAddZeroClass.{u7} M₃ (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6))) (DistribSMul.toSmulZeroClass.{u4, u7} S₃ M₃ (AddMonoid.toAddZeroClass.{u7} M₃ (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6)) (DistribMulAction.toDistribSMul.{u4, u7} S₃ M₃ _inst_14 (AddCommMonoid.toAddMonoid.{u7} M₃ _inst_6) _inst_15)))] (a : S₃) (g : LinearMap.{u2, u3, u6, u7} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_8 _inst_9) (f : LinearMap.{u1, u2, u5, u6} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u5) (succ u7)} (LinearMap.{u1, u3, u5, u7} R R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_7 _inst_9) (LinearMap.comp.{u1, u2, u3, u5, u6, u7} R R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 σ₁₂ σ₂₃ σ₁₃ _inst_10 (SMul.smul.{u4, max u6 u7} S₃ (LinearMap.{u2, u3, u6, u7} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_8 _inst_9) (LinearMap.hasSmul.{u2, u3, u4, u6, u7} R₂ R₃ S₃ M₂ M₃ _inst_2 _inst_3 _inst_5 _inst_6 _inst_8 _inst_9 σ₂₃ _inst_14 _inst_15 _inst_16) a g) f) (SMul.smul.{u4, max u5 u7} S₃ (LinearMap.{u1, u3, u5, u7} R R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_7 _inst_9) (LinearMap.hasSmul.{u1, u3, u4, u5, u7} R R₃ S₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 _inst_9 σ₁₃ _inst_14 _inst_15 _inst_16) a (LinearMap.comp.{u1, u2, u3, u5, u6, u7} R R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 σ₁₂ σ₂₃ σ₁₃ _inst_10 g f))
-but is expected to have type
-  forall {R : Type.{u3}} {R₂ : Type.{u7}} {R₃ : Type.{u6}} {S₃ : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u5}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u7} R₂] [_inst_3 : Semiring.{u6} R₃] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_7 : Module.{u3, u2} R M _inst_1 _inst_4] [_inst_8 : Module.{u7, u5} R₂ M₂ _inst_2 _inst_5] [_inst_9 : Module.{u6, u4} R₃ M₃ _inst_3 _inst_6] {σ₁₂ : RingHom.{u3, u7} R R₂ (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u7} R₂ _inst_2)} {σ₂₃ : RingHom.{u7, u6} R₂ R₃ (Semiring.toNonAssocSemiring.{u7} R₂ _inst_2) (Semiring.toNonAssocSemiring.{u6} R₃ _inst_3)} {σ₁₃ : RingHom.{u3, u6} R R₃ (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u6} R₃ _inst_3)} [_inst_10 : RingHomCompTriple.{u3, u7, u6} R R₂ R₃ _inst_1 _inst_2 _inst_3 σ₁₂ σ₂₃ σ₁₃] [_inst_14 : Monoid.{u1} S₃] [_inst_15 : DistribMulAction.{u1, u4} S₃ M₃ _inst_14 (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)] [_inst_16 : SMulCommClass.{u6, u1, u4} R₃ S₃ M₃ (SMulZeroClass.toSMul.{u6, u4} R₃ M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u6, u4} R₃ M₃ (MonoidWithZero.toZero.{u6} R₃ (Semiring.toMonoidWithZero.{u6} R₃ _inst_3)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u6, u4} R₃ M₃ (Semiring.toMonoidWithZero.{u6} R₃ _inst_3) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)) (Module.toMulActionWithZero.{u6, u4} R₃ M₃ _inst_3 _inst_6 _inst_9)))) (SMulZeroClass.toSMul.{u1, u4} S₃ M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)) (DistribSMul.toSMulZeroClass.{u1, u4} S₃ M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)) (DistribMulAction.toDistribSMul.{u1, u4} S₃ M₃ _inst_14 (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6) _inst_15)))] (a : S₃) (g : LinearMap.{u7, u6, u5, u4} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_8 _inst_9) (f : LinearMap.{u3, u7, u2, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u2) (succ u4)} (LinearMap.{u3, u6, u2, u4} R R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_7 _inst_9) (LinearMap.comp.{u3, u7, u6, u2, u5, u4} R R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 σ₁₂ σ₂₃ σ₁₃ _inst_10 (HSMul.hSMul.{u1, max u5 u4, max u5 u4} S₃ (LinearMap.{u7, u6, u5, u4} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_8 _inst_9) (LinearMap.{u7, u6, u5, u4} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_8 _inst_9) (instHSMul.{u1, max u5 u4} S₃ (LinearMap.{u7, u6, u5, u4} R₂ R₃ _inst_2 _inst_3 σ₂₃ M₂ M₃ _inst_5 _inst_6 _inst_8 _inst_9) (LinearMap.instSMulLinearMap.{u7, u6, u1, u5, u4} R₂ R₃ S₃ M₂ M₃ _inst_2 _inst_3 _inst_5 _inst_6 _inst_8 _inst_9 σ₂₃ _inst_14 _inst_15 _inst_16)) a g) f) (HSMul.hSMul.{u1, max u4 u2, max u2 u4} S₃ (LinearMap.{u3, u6, u2, u4} R R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_7 _inst_9) (LinearMap.{u3, u6, u2, u4} R R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_7 _inst_9) (instHSMul.{u1, max u2 u4} S₃ (LinearMap.{u3, u6, u2, u4} R R₃ _inst_1 _inst_3 σ₁₃ M M₃ _inst_4 _inst_6 _inst_7 _inst_9) (LinearMap.instSMulLinearMap.{u3, u6, u1, u2, u4} R R₃ S₃ M M₃ _inst_1 _inst_3 _inst_4 _inst_6 _inst_7 _inst_9 σ₁₃ _inst_14 _inst_15 _inst_16)) a (LinearMap.comp.{u3, u7, u6, u2, u5, u4} R R₂ R₃ M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 _inst_6 _inst_7 _inst_8 _inst_9 σ₁₂ σ₂₃ σ₁₃ _inst_10 g f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_comp LinearMap.smul_compₓ'. -/
 theorem smul_comp (a : S₃) (g : M₂ →ₛₗ[σ₂₃] M₃) (f : M →ₛₗ[σ₁₂] M₂) :
     (a • g).comp f = a • g.comp f :=
@@ -1521,10 +1374,7 @@ theorem smul_comp (a : S₃) (g : M₂ →ₛₗ[σ₂₃] M₃) (f : M →ₛ
 omit σ₁₃
 
 /- warning: linear_map.comp_smul -> LinearMap.comp_smul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} {M₃ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_6 : AddCommMonoid.{u5} M₃] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_4] [_inst_11 : Monoid.{u2} S] [_inst_12 : DistribMulAction.{u2, u4} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)] [_inst_20 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_21 : Module.{u1, u5} R M₃ _inst_1 _inst_6] [_inst_22 : SMulCommClass.{u1, u2, u4} R S M₂ (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_20)))) (SMulZeroClass.toHasSmul.{u2, u4} S M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u2, u4} S M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u2, u4} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5) _inst_12)))] [_inst_23 : DistribMulAction.{u2, u5} S M₃ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6)] [_inst_24 : SMulCommClass.{u1, u2, u5} R S M₃ (SMulZeroClass.toHasSmul.{u1, u5} R M₃ (AddZeroClass.toHasZero.{u5} M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u1, u5} R M₃ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u5} M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u1, u5} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u5} M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6))) (Module.toMulActionWithZero.{u1, u5} R M₃ _inst_1 _inst_6 _inst_21)))) (SMulZeroClass.toHasSmul.{u2, u5} S M₃ (AddZeroClass.toHasZero.{u5} M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6))) (DistribSMul.toSmulZeroClass.{u2, u5} S M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6)) (DistribMulAction.toDistribSMul.{u2, u5} S M₃ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6) _inst_23)))] [_inst_25 : LinearMap.CompatibleSMul.{u5, u4, u2, u1} M₃ M₂ _inst_6 _inst_5 S R _inst_1 (SMulZeroClass.toHasSmul.{u2, u5} S M₃ (AddZeroClass.toHasZero.{u5} M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6))) (DistribSMul.toSmulZeroClass.{u2, u5} S M₃ (AddMonoid.toAddZeroClass.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6)) (DistribMulAction.toDistribSMul.{u2, u5} S M₃ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_6) _inst_23))) _inst_21 (SMulZeroClass.toHasSmul.{u2, u4} S M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u2, u4} S M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u2, u4} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5) _inst_12))) _inst_20] (g : LinearMap.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₂ _inst_6 _inst_5 _inst_21 _inst_20) (a : S) (f : LinearMap.{u1, u1, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_4 _inst_6 _inst_7 _inst_21), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_4 _inst_5 _inst_7 _inst_20) (LinearMap.comp.{u1, u1, u1, u3, u5, u4} R R R M M₃ M₂ _inst_1 _inst_1 _inst_1 _inst_4 _inst_6 _inst_5 _inst_7 _inst_21 _inst_20 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomCompTriple.right_ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (SMul.smul.{u2, max u3 u5} S (LinearMap.{u1, u1, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_4 _inst_6 _inst_7 _inst_21) (LinearMap.hasSmul.{u1, u1, u2, u3, u5} R R S M M₃ _inst_1 _inst_1 _inst_4 _inst_6 _inst_7 _inst_21 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_11 _inst_23 _inst_24) a f)) (SMul.smul.{u2, max u3 u4} S (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_4 _inst_5 _inst_7 _inst_20) (LinearMap.hasSmul.{u1, u1, u2, u3, u4} R R S M M₂ _inst_1 _inst_1 _inst_4 _inst_5 _inst_7 _inst_20 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_11 _inst_12 _inst_22) a (LinearMap.comp.{u1, u1, u1, u3, u5, u4} R R R M M₃ M₂ _inst_1 _inst_1 _inst_1 _inst_4 _inst_6 _inst_5 _inst_7 _inst_21 _inst_20 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomCompTriple.right_ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g f))
-but is expected to have type
-  forall {R : Type.{u5}} {S : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u5} R] [_inst_4 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_7 : Module.{u5, u1} R M _inst_1 _inst_4] [_inst_11 : Monoid.{u2} S] [_inst_12 : DistribMulAction.{u2, u4} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)] [_inst_20 : Module.{u5, u4} R M₂ _inst_1 _inst_5] [_inst_21 : Module.{u5, u3} R M₃ _inst_1 _inst_6] [_inst_22 : SMulCommClass.{u5, u2, u4} R S M₂ (SMulZeroClass.toSMul.{u5, u4} R M₂ (AddMonoid.toZero.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u5, u4} R M₂ (MonoidWithZero.toZero.{u5} R (Semiring.toMonoidWithZero.{u5} R _inst_1)) (AddMonoid.toZero.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u5, u4} R M₂ (Semiring.toMonoidWithZero.{u5} R _inst_1) (AddMonoid.toZero.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (Module.toMulActionWithZero.{u5, u4} R M₂ _inst_1 _inst_5 _inst_20)))) (SMulZeroClass.toSMul.{u2, u4} S M₂ (AddMonoid.toZero.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u2, u4} S M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u2, u4} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5) _inst_12)))] [_inst_23 : DistribMulAction.{u2, u3} S M₃ _inst_11 (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)] [_inst_24 : SMulCommClass.{u5, u2, u3} R S M₃ (SMulZeroClass.toSMul.{u5, u3} R M₃ (AddMonoid.toZero.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} R M₃ (MonoidWithZero.toZero.{u5} R (Semiring.toMonoidWithZero.{u5} R _inst_1)) (AddMonoid.toZero.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} R M₃ (Semiring.toMonoidWithZero.{u5} R _inst_1) (AddMonoid.toZero.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (Module.toMulActionWithZero.{u5, u3} R M₃ _inst_1 _inst_6 _inst_21)))) (SMulZeroClass.toSMul.{u2, u3} S M₃ (AddMonoid.toZero.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (DistribSMul.toSMulZeroClass.{u2, u3} S M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (DistribMulAction.toDistribSMul.{u2, u3} S M₃ _inst_11 (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6) _inst_23)))] [_inst_25 : LinearMap.CompatibleSMul.{u3, u4, u2, u5} M₃ M₂ _inst_6 _inst_5 S R _inst_1 (SMulZeroClass.toSMul.{u2, u3} S M₃ (AddMonoid.toZero.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (DistribSMul.toSMulZeroClass.{u2, u3} S M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (DistribMulAction.toDistribSMul.{u2, u3} S M₃ _inst_11 (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6) _inst_23))) _inst_21 (SMulZeroClass.toSMul.{u2, u4} S M₂ (AddMonoid.toZero.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u2, u4} S M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u2, u4} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5) _inst_12))) _inst_20] (g : LinearMap.{u5, u5, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M₃ M₂ _inst_6 _inst_5 _inst_21 _inst_20) (a : S) (f : LinearMap.{u5, u5, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₃ _inst_4 _inst_6 _inst_7 _inst_21), Eq.{max (succ u1) (succ u4)} (LinearMap.{u5, u5, u1, u4} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₂ _inst_4 _inst_5 _inst_7 _inst_20) (LinearMap.comp.{u5, u5, u5, u1, u3, u4} R R R M M₃ M₂ _inst_1 _inst_1 _inst_1 _inst_4 _inst_6 _inst_5 _inst_7 _inst_21 _inst_20 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) (RingHomCompTriple.ids.{u5, u5} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1))) g (HSMul.hSMul.{u2, max u1 u3, max u1 u3} S (LinearMap.{u5, u5, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₃ _inst_4 _inst_6 _inst_7 _inst_21) (LinearMap.{u5, u5, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₃ _inst_4 _inst_6 _inst_7 _inst_21) (instHSMul.{u2, max u1 u3} S (LinearMap.{u5, u5, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₃ _inst_4 _inst_6 _inst_7 _inst_21) (LinearMap.instSMulLinearMap.{u5, u5, u2, u1, u3} R R S M M₃ _inst_1 _inst_1 _inst_4 _inst_6 _inst_7 _inst_21 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) _inst_11 _inst_23 _inst_24)) a f)) (HSMul.hSMul.{u2, max u4 u1, max u1 u4} S (LinearMap.{u5, u5, u1, u4} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₂ _inst_4 _inst_5 _inst_7 _inst_20) (LinearMap.{u5, u5, u1, u4} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₂ _inst_4 _inst_5 _inst_7 _inst_20) (instHSMul.{u2, max u1 u4} S (LinearMap.{u5, u5, u1, u4} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) M M₂ _inst_4 _inst_5 _inst_7 _inst_20) (LinearMap.instSMulLinearMap.{u5, u5, u2, u1, u4} R R S M M₂ _inst_1 _inst_1 _inst_4 _inst_5 _inst_7 _inst_20 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) _inst_11 _inst_12 _inst_22)) a (LinearMap.comp.{u5, u5, u5, u1, u3, u4} R R R M M₃ M₂ _inst_1 _inst_1 _inst_1 _inst_4 _inst_6 _inst_5 _inst_7 _inst_21 _inst_20 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1)) (RingHomCompTriple.ids.{u5, u5} R R _inst_1 _inst_1 (RingHom.id.{u5} R (Semiring.toNonAssocSemiring.{u5} R _inst_1))) g f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_smul LinearMap.comp_smulₓ'. -/
 -- TODO: generalize this to semilinear maps
 theorem comp_smul [Module R M₂] [Module R M₃] [SMulCommClass R S M₂] [DistribMulAction S M₃]
Diff
@@ -243,7 +243,7 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u3) (succ u4)} (M -> M₃) (LinearMap.toFun.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
@@ -254,7 +254,7 @@ theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext LinearMap.extₓ'. -/
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
@@ -265,7 +265,7 @@ theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
+  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
 Case conversion may be inaccurate. Consider using '#align linear_map.copy LinearMap.copyₓ'. -/
 /-- Copy of a `linear_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
@@ -280,7 +280,7 @@ protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_copy LinearMap.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : ⇑(f.copy f' h) = f' :=
@@ -291,7 +291,7 @@ theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
 Case conversion may be inaccurate. Consider using '#align linear_map.copy_eq LinearMap.copy_eqₓ'. -/
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
   FunLike.ext' h
@@ -309,7 +309,7 @@ initialize_simps_projections LinearMap (toFun → apply)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : M -> M₃) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (f x) (f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (f x))), Eq.{max (succ u3) (succ u4)} ((fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
@@ -328,7 +328,7 @@ def id : M →ₗ[R] M :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
 Case conversion may be inaccurate. Consider using '#align linear_map.id_apply LinearMap.id_applyₓ'. -/
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
   rfl
@@ -338,7 +338,7 @@ theorem id_apply (x : M) : @id R M _ _ _ x = x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} ((fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
 Case conversion may be inaccurate. Consider using '#align linear_map.id_coe LinearMap.id_coeₓ'. -/
 @[simp, norm_cast]
 theorem id_coe : ((LinearMap.id : M →ₗ[R] M) : M → M) = id :=
@@ -363,7 +363,7 @@ variable (fₗ gₗ : M →ₗ[R] M₂) (f g : M →ₛₗ[σ] M₃)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
 Case conversion may be inaccurate. Consider using '#align linear_map.is_linear LinearMap.isLinearₓ'. -/
 theorem isLinear : IsLinearMap R fₗ :=
   ⟨fₗ.map_add', fₗ.map_smul'⟩
@@ -385,7 +385,7 @@ theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u3} M x x') -> (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_arg LinearMap.congr_argₓ'. -/
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
   FunLike.congr_arg f
@@ -395,7 +395,7 @@ protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_fun LinearMap.congr_funₓ'. -/
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
@@ -406,7 +406,7 @@ protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_iff LinearMap.ext_iffₓ'. -/
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
@@ -429,7 +429,7 @@ variable (fₗ gₗ f g)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_add LinearMap.map_addₓ'. -/
 protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
   map_add f x y
@@ -439,7 +439,7 @@ protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_zero LinearMap.map_zeroₓ'. -/
 protected theorem map_zero : f 0 = 0 :=
   map_zero f
@@ -449,7 +449,7 @@ protected theorem map_zero : f 0 = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
+  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
@@ -461,7 +461,7 @@ protected theorem map_smulₛₗ (c : R) (x : M) : f (c • x) = σ c • f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) c (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ x))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
+  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul LinearMap.map_smulₓ'. -/
 protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
   map_smul fₗ c x
@@ -471,7 +471,7 @@ protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -481,7 +481,7 @@ protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u3, succ u4} M M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))) (Eq.{succ u3} M x (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iffₓ'. -/
 -- TODO: generalize to `zero_hom_class`
 @[simp]
@@ -540,7 +540,7 @@ variable (R M₂)
 lean 3 declaration is
   forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u1, u2, u3} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] (c : R) (s : Set.{u2} M), Eq.{succ u3} (Set.{u3} M₂) (Set.image.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10))))) c s)) (SMul.smul.{u1, u3} R (Set.{u3} M₂) (Set.smulSet.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11))))) c (Set.image.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) s))
 but is expected to have type
-  forall (R : Type.{u3}) (M : Type.{u2}) (M₂ : Type.{u1}) [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u3, u2, u1} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₂) (Set.image.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) (HSMul.hSMul.{u3, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u3, u2} R (Set.{u2} M) (Set.smulSet.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} R (Set.{u1} M₂) (Set.{u1} M₂) (instHSMul.{u3, u1} R (Set.{u1} M₂) (Set.smulSet.{u3, u1} R M₂ (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u3, u1} R M₂ (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} R M₂ (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (Module.toMulActionWithZero.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))))) c (Set.image.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) s))
+  forall (R : Type.{u3}) (M : Type.{u2}) (M₂ : Type.{u1}) [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u3, u2, u1} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₂) (Set.image.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) (HSMul.hSMul.{u3, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u3, u2} R (Set.{u2} M) (Set.smulSet.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} R (Set.{u1} M₂) (Set.{u1} M₂) (instHSMul.{u3, u1} R (Set.{u1} M₂) (Set.smulSet.{u3, u1} R M₂ (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u3, u1} R M₂ (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} R M₂ (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (Module.toMulActionWithZero.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))))) c (Set.image.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) s))
 Case conversion may be inaccurate. Consider using '#align image_smul_set image_smul_setₓ'. -/
 theorem image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) : h '' (c • s) = c • h '' s :=
   image_smul_setₛₗ _ _ _ h c s
@@ -550,7 +550,7 @@ theorem image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) : h '' (c
 lean 3 declaration is
   forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u1, u2, u3} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] {c : R}, (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) c) -> (forall (s : Set.{u3} M₂), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) (SMul.smul.{u1, u3} R (Set.{u3} M₂) (Set.smulSet.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11))))) c s)) (SMul.smul.{u1, u2} R (Set.{u2} M) (Set.smulSet.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10))))) c (Set.preimage.{u2, u3} M M₂ (coeFn.{succ u4, max (succ u2) (succ u3)} F (fun (_x : F) => M -> M₂) (FunLike.hasCoeToFun.{succ u4, succ u2, succ u3} F M (fun (_x : M) => M₂) (SMulHomClass.toFunLike.{u4, u1, u2, u3} F R M M₂ (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (DistribSMul.toSmulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSmulHomClass.{u4, u1, u2, u3} F R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13)))) h) s)))
 but is expected to have type
-  forall (R : Type.{u3}) (M : Type.{u2}) (M₂ : Type.{u1}) [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u3, u2, u1} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] {c : R}, (IsUnit.{u3} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) c) -> (forall (s : Set.{u1} M₂), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) (HSMul.hSMul.{u3, u1, u1} R (Set.{u1} M₂) (Set.{u1} M₂) (instHSMul.{u3, u1} R (Set.{u1} M₂) (Set.smulSet.{u3, u1} R M₂ (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u3, u1} R M₂ (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} R M₂ (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (Module.toMulActionWithZero.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))))) c s)) (HSMul.hSMul.{u3, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u3, u2} R (Set.{u2} M) (Set.smulSet.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) s)))
+  forall (R : Type.{u3}) (M : Type.{u2}) (M₂ : Type.{u1}) [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] {F : Type.{u4}} (h : F) [_inst_13 : LinearMapClass.{u4, u3, u2, u1} F R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11] {c : R}, (IsUnit.{u3} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) c) -> (forall (s : Set.{u1} M₂), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) (HSMul.hSMul.{u3, u1, u1} R (Set.{u1} M₂) (Set.{u1} M₂) (instHSMul.{u3, u1} R (Set.{u1} M₂) (Set.smulSet.{u3, u1} R M₂ (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u3, u1} R M₂ (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u3, u1} R M₂ (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (Module.toMulActionWithZero.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))))) c s)) (HSMul.hSMul.{u3, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u3, u2} R (Set.{u2} M) (Set.smulSet.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₂ (FunLike.coe.{succ u4, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{u4, u3, u2, u1} F R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11)))) (DistribMulActionHomClass.toSMulHomClass.{u4, u3, u2, u1} F R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_3) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_5) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_3 _inst_10) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_5 _inst_11) (SemilinearMapClass.distribMulActionHomClass.{u3, u2, u1, u4} R M M₂ F _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13))) h) s)))
 Case conversion may be inaccurate. Consider using '#align preimage_smul_set preimage_smul_setₓ'. -/
 theorem preimage_smul_set [LinearMapClass F R M M₂] {c : R} (hc : IsUnit c) (s : Set M₂) :
     h ⁻¹' (c • s) = c • h ⁻¹' s :=
@@ -587,7 +587,7 @@ instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u2} M₂] {R : Type.{u3}} {S : Type.{u4}} [_inst_13 : Semiring.{u4} S] [_inst_14 : SMul.{u3, u1} R M] [_inst_15 : Module.{u4, u1} S M _inst_13 _inst_3] [_inst_16 : SMul.{u3, u2} R M₂] [_inst_17 : Module.{u4, u2} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u1, u2, u3, u4} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u2} M₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ (SMul.smul.{u3, u1} R M _inst_14 c x)) (SMul.smul.{u3, u2} R M₂ _inst_16 c (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ x))
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_of_tower LinearMap.map_smul_of_towerₓ'. -/
 @[simp]
 theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
@@ -609,7 +609,7 @@ def toAddMonoidHom : M →+ M₃ where
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (fun (_x : AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) => M -> M₃) (AddMonoidHom.hasCoeToFun.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (LinearMap.toAddMonoidHom.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.to_add_monoid_hom_coe LinearMap.toAddMonoidHom_coeₓ'. -/
 @[simp]
 theorem toAddMonoidHom_coe : ⇑f.toAddMonoidHom = f :=
@@ -638,7 +638,7 @@ def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
 lean 3 declaration is
   forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u4)} (M -> M₂) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ)
 but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
+  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalarsₓ'. -/
 @[simp]
 theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
@@ -649,7 +649,7 @@ theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R f
 lean 3 declaration is
   forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ x)
 but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
+  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_apply LinearMap.restrictScalars_applyₓ'. -/
 theorem restrictScalars_apply (fₗ : M →ₗ[S] M₂) (x) : restrictScalars R fₗ x = fₗ x :=
   rfl
@@ -696,7 +696,7 @@ theorem toAddMonoidHom_injective : Function.Injective (toAddMonoidHom : (M →
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring LinearMap.ext_ringₓ'. -/
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
 @[ext]
@@ -708,7 +708,7 @@ theorem ext_ring {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] {σ : RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} {f : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10} {g : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10}, Iff (Eq.{max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) f g) (Eq.{succ u2} M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_iff LinearMap.ext_ring_iffₓ'. -/
 theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
@@ -718,7 +718,7 @@ theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} (MulOpposite.{u1} R) S (MulOpposite.nonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.nonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.nonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_op LinearMap.ext_ring_opₓ'. -/
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
@@ -775,7 +775,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} M₃ (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_apply LinearMap.comp_applyₓ'. -/
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
@@ -789,7 +789,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u4) (succ u6)} ((fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u4, succ u5, succ u6} M₁ M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_comp LinearMap.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
@@ -828,7 +828,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u4, succ u5} M₁ M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_right LinearMap.cancel_rightₓ'. -/
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h => ext <| hg.forall.2 (ext_iff.1 h), fun h => h ▸ rfl⟩
@@ -838,7 +838,7 @@ theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f =
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u5, succ u6} M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
 but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
+  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_left LinearMap.cancel_leftₓ'. -/
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h => ext fun x => hf <| by rw [← comp_apply, h, comp_apply], fun h => h ▸ rfl⟩
@@ -854,7 +854,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMon
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
+  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
 Case conversion may be inaccurate. Consider using '#align linear_map.inverse LinearMap.inverseₓ'. -/
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
@@ -883,7 +883,7 @@ variable (f : M →ₛₗ[σ] M₂)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (SubNegMonoid.toHasNeg.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3))) x)) (Neg.neg.{u4} M₂ (SubNegMonoid.toHasNeg.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_neg LinearMap.map_negₓ'. -/
 protected theorem map_neg (x : M) : f (-x) = -f x :=
   map_neg f x
@@ -893,7 +893,7 @@ protected theorem map_neg (x : M) : f (-x) = -f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toHasSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} M₂ M₂ M₂ (instHSub.{u4} M₂ (SubNegMonoid.toHasSub.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_sub LinearMap.map_subₓ'. -/
 protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
@@ -968,7 +968,7 @@ theorem [anonymous] (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (fun (_x : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) => M -> M₂) ([anonymous].{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) f)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMapₓ'. -/
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
@@ -1013,7 +1013,7 @@ def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (IsLinearMap.mk'.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
 Case conversion may be inaccurate. Consider using '#align is_linear_map.mk'_apply IsLinearMap.mk'_applyₓ'. -/
 @[simp]
 theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f x :=
@@ -1171,7 +1171,7 @@ theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (fun (_x : LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Int Int M M₂ Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_int_linear_map AddMonoidHom.coe_toIntLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) :
@@ -1205,7 +1205,7 @@ theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [A
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (fun (_x : LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_rat_linear_map AddMonoidHom.coe_toRatLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
@@ -1241,7 +1241,7 @@ instance : SMul S (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u5} M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f) x) (SMul.smul.{u3, u5} S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
 but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
+  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_apply LinearMap.smul_applyₓ'. -/
 @[simp]
 theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f) x = a • f x :=
@@ -1252,7 +1252,7 @@ theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f)
 lean 3 declaration is
   forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{succ (max u4 u5)} (M -> M₂) (coeFn.{succ (max u4 u5), succ (max u4 u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f)) (SMul.smul.{u3, max u4 u5} S (M -> M₂) (Function.hasSMul.{u4, u3, u5} M S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
 but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
+  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_smul LinearMap.coe_smulₓ'. -/
 theorem coe_smul (a : S) (f : M →ₛₗ[σ₁₂] M₂) : ⇑(a • f) = a • f :=
   rfl
@@ -1298,7 +1298,7 @@ instance : Zero (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (OfNat.mk.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.zero.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasZero.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)))) x) (OfNat.ofNat.{u4} M₂ 0 (OfNat.mk.{u4} M₂ 0 (Zero.zero.{u4} M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))))))
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5))))
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5))))
 Case conversion may be inaccurate. Consider using '#align linear_map.zero_apply LinearMap.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
@@ -1352,7 +1352,7 @@ instance : Add (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasAdd.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u4, u4, u4} M₂ M₂ M₂ (instHAdd.{u4} M₂ (AddZeroClass.toHasAdd.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.add_apply LinearMap.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x + g x :=
@@ -1396,7 +1396,7 @@ instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasNeg.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u4} N₂ (SubNegMonoid.toHasNeg.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.neg_apply LinearMap.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
@@ -1440,7 +1440,7 @@ instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasSub.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u4, u4, u4} N₂ N₂ N₂ (instHSub.{u4} N₂ (SubNegMonoid.toHasSub.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.sub_apply LinearMap.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x - g x :=
@@ -1588,7 +1588,7 @@ theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) x) x
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
 Case conversion may be inaccurate. Consider using '#align linear_map.one_apply LinearMap.one_applyₓ'. -/
 @[simp]
 theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
@@ -1599,7 +1599,7 @@ theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g) x) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.mul_apply LinearMap.mul_applyₓ'. -/
 @[simp]
 theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
@@ -1610,7 +1610,7 @@ theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (id.{succ u2} M)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_one LinearMap.coe_oneₓ'. -/
 theorem coe_one : ⇑(1 : Module.End R M) = id :=
   rfl
@@ -1620,7 +1620,7 @@ theorem coe_one : ⇑(1 : Module.End R M) = id :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u2, succ u2, succ u2} M M M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mul LinearMap.coe_mulₓ'. -/
 theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
@@ -1659,7 +1659,7 @@ instance Module.End.semiring : Semiring (Module.End R M) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Nat.castCoe.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)))))))) n) m) (SMul.smul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) n m)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
 Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_apply Module.End.natCast_applyₓ'. -/
 /-- See also `module.End.nat_cast_def`. -/
 @[simp]
@@ -1681,7 +1681,7 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} N₁ (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) N₁ N₁ (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5) => N₁ -> N₁) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5))))))) z) m) (SMul.smul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3))) z m)
 but is expected to have type
-  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
+  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_apply Module.End.intCast_applyₓ'. -/
 /-- See also `module.End.int_cast_def`. -/
 @[simp]
@@ -1750,7 +1750,7 @@ instance applyModule : Module (Module.End R M) M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u2} M (SMul.smul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toHasSmul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (MulZeroClass.toHasZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MulZeroOneClass.toMulZeroClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MonoidWithZero.toMulZeroOneClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) f a) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f a)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_def LinearMap.smul_defₓ'. -/
 @[simp]
 protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
Diff
@@ -195,7 +195,7 @@ include i
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} {F : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : F) [i : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f x)) (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_invₓ'. -/
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -309,7 +309,7 @@ initialize_simps_projections LinearMap (toFun → apply)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : M -> M₃) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (f x) (f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (f x))), Eq.{max (succ u3) (succ u4)} ((fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
@@ -416,7 +416,7 @@ theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f) h₁ h₂) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
 Case conversion may be inaccurate. Consider using '#align linear_map.mk_coe LinearMap.mk_coeₓ'. -/
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
@@ -449,7 +449,7 @@ protected theorem map_zero : f 0 = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
+  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
@@ -471,7 +471,7 @@ protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -503,7 +503,7 @@ variable (M M₃ σ) {F : Type _} (h : F)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u3} M), Eq.{succ u4} (Set.{u4} M₃) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c s)) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
+  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
 Case conversion may be inaccurate. Consider using '#align image_smul_setₛₗ image_smul_setₛₗₓ'. -/
 @[simp]
 theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
@@ -519,7 +519,7 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) c) -> (forall (s : Set.{u4} M₃), Eq.{succ u3} (Set.{u3} M) (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) s)) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s)))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
+  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
 Case conversion may be inaccurate. Consider using '#align preimage_smul_setₛₗ preimage_smul_setₛₗₓ'. -/
 theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
     h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
@@ -1890,7 +1890,7 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
 lean 3 declaration is
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))))) n) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (fun (_x : RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) => Nat -> (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.hasCoeToFun.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
 but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
 Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_def Module.End.natCast_defₓ'. -/
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
     (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
@@ -1901,7 +1901,7 @@ theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
 lean 3 declaration is
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))))))) z) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (fun (_x : RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) => Int -> (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.hasCoeToFun.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.semiring (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2397 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_def Module.End.intCast_defₓ'. -/
 theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
     (↑z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=
Diff
@@ -243,7 +243,7 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u3) (succ u4)} (M -> M₃) (LinearMap.toFun.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
@@ -254,7 +254,7 @@ theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext LinearMap.extₓ'. -/
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
@@ -265,7 +265,7 @@ theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
+  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
 Case conversion may be inaccurate. Consider using '#align linear_map.copy LinearMap.copyₓ'. -/
 /-- Copy of a `linear_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
@@ -280,7 +280,7 @@ protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_copy LinearMap.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : ⇑(f.copy f' h) = f' :=
@@ -291,7 +291,7 @@ theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
 Case conversion may be inaccurate. Consider using '#align linear_map.copy_eq LinearMap.copy_eqₓ'. -/
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
   FunLike.ext' h
@@ -309,7 +309,7 @@ initialize_simps_projections LinearMap (toFun → apply)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : M -> M₃) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (f x) (f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (f x))), Eq.{max (succ u3) (succ u4)} ((fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
@@ -328,7 +328,7 @@ def id : M →ₗ[R] M :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
 Case conversion may be inaccurate. Consider using '#align linear_map.id_apply LinearMap.id_applyₓ'. -/
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
   rfl
@@ -338,7 +338,7 @@ theorem id_apply (x : M) : @id R M _ _ _ x = x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} ((fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
 Case conversion may be inaccurate. Consider using '#align linear_map.id_coe LinearMap.id_coeₓ'. -/
 @[simp, norm_cast]
 theorem id_coe : ((LinearMap.id : M →ₗ[R] M) : M → M) = id :=
@@ -363,7 +363,7 @@ variable (fₗ gₗ : M →ₗ[R] M₂) (f g : M →ₛₗ[σ] M₃)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
 Case conversion may be inaccurate. Consider using '#align linear_map.is_linear LinearMap.isLinearₓ'. -/
 theorem isLinear : IsLinearMap R fₗ :=
   ⟨fₗ.map_add', fₗ.map_smul'⟩
@@ -385,7 +385,7 @@ theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u3} M x x') -> (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_arg LinearMap.congr_argₓ'. -/
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
   FunLike.congr_arg f
@@ -395,7 +395,7 @@ protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_fun LinearMap.congr_funₓ'. -/
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
@@ -406,7 +406,7 @@ protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_iff LinearMap.ext_iffₓ'. -/
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
@@ -416,7 +416,7 @@ theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f) h₁ h₂) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.semilinearMapClass.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
 Case conversion may be inaccurate. Consider using '#align linear_map.mk_coe LinearMap.mk_coeₓ'. -/
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
@@ -429,7 +429,7 @@ variable (fₗ gₗ f g)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_add LinearMap.map_addₓ'. -/
 protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
   map_add f x y
@@ -439,7 +439,7 @@ protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_zero LinearMap.map_zeroₓ'. -/
 protected theorem map_zero : f 0 = 0 :=
   map_zero f
@@ -449,7 +449,7 @@ protected theorem map_zero : f 0 = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
+  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
@@ -461,7 +461,7 @@ protected theorem map_smulₛₗ (c : R) (x : M) : f (c • x) = σ c • f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) c (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ x))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
+  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul LinearMap.map_smulₓ'. -/
 protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
   map_smul fₗ c x
@@ -471,7 +471,7 @@ protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -481,7 +481,7 @@ protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u3, succ u4} M M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))) (Eq.{succ u3} M x (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iffₓ'. -/
 -- TODO: generalize to `zero_hom_class`
 @[simp]
@@ -587,7 +587,7 @@ instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u2} M₂] {R : Type.{u3}} {S : Type.{u4}} [_inst_13 : Semiring.{u4} S] [_inst_14 : SMul.{u3, u1} R M] [_inst_15 : Module.{u4, u1} S M _inst_13 _inst_3] [_inst_16 : SMul.{u3, u2} R M₂] [_inst_17 : Module.{u4, u2} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u1, u2, u3, u4} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u2} M₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ (SMul.smul.{u3, u1} R M _inst_14 c x)) (SMul.smul.{u3, u2} R M₂ _inst_16 c (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ x))
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_of_tower LinearMap.map_smul_of_towerₓ'. -/
 @[simp]
 theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
@@ -609,7 +609,7 @@ def toAddMonoidHom : M →+ M₃ where
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (fun (_x : AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) => M -> M₃) (AddMonoidHom.hasCoeToFun.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (LinearMap.toAddMonoidHom.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.to_add_monoid_hom_coe LinearMap.toAddMonoidHom_coeₓ'. -/
 @[simp]
 theorem toAddMonoidHom_coe : ⇑f.toAddMonoidHom = f :=
@@ -638,7 +638,7 @@ def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
 lean 3 declaration is
   forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u4)} (M -> M₂) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ)
 but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
+  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalarsₓ'. -/
 @[simp]
 theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
@@ -649,7 +649,7 @@ theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R f
 lean 3 declaration is
   forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ x)
 but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
+  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_apply LinearMap.restrictScalars_applyₓ'. -/
 theorem restrictScalars_apply (fₗ : M →ₗ[S] M₂) (x) : restrictScalars R fₗ x = fₗ x :=
   rfl
@@ -696,7 +696,7 @@ theorem toAddMonoidHom_injective : Function.Injective (toAddMonoidHom : (M →
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring LinearMap.ext_ringₓ'. -/
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
 @[ext]
@@ -708,7 +708,7 @@ theorem ext_ring {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] {σ : RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} {f : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10} {g : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10}, Iff (Eq.{max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) f g) (Eq.{succ u2} M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_iff LinearMap.ext_ring_iffₓ'. -/
 theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
@@ -718,7 +718,7 @@ theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} (MulOpposite.{u1} R) S (MulOpposite.nonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.nonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.nonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_op LinearMap.ext_ring_opₓ'. -/
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
@@ -775,7 +775,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} M₃ (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_apply LinearMap.comp_applyₓ'. -/
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
@@ -789,7 +789,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u4) (succ u6)} ((fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u4, succ u5, succ u6} M₁ M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_comp LinearMap.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
@@ -828,7 +828,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u4, succ u5} M₁ M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_right LinearMap.cancel_rightₓ'. -/
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h => ext <| hg.forall.2 (ext_iff.1 h), fun h => h ▸ rfl⟩
@@ -838,7 +838,7 @@ theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f =
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u5, succ u6} M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
 but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
+  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_left LinearMap.cancel_leftₓ'. -/
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h => ext fun x => hf <| by rw [← comp_apply, h, comp_apply], fun h => h ▸ rfl⟩
@@ -854,7 +854,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMon
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
+  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
 Case conversion may be inaccurate. Consider using '#align linear_map.inverse LinearMap.inverseₓ'. -/
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
@@ -883,7 +883,7 @@ variable (f : M →ₛₗ[σ] M₂)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (SubNegMonoid.toHasNeg.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3))) x)) (Neg.neg.{u4} M₂ (SubNegMonoid.toHasNeg.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_neg LinearMap.map_negₓ'. -/
 protected theorem map_neg (x : M) : f (-x) = -f x :=
   map_neg f x
@@ -893,7 +893,7 @@ protected theorem map_neg (x : M) : f (-x) = -f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toHasSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} M₂ M₂ M₂ (instHSub.{u4} M₂ (SubNegMonoid.toHasSub.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_sub LinearMap.map_subₓ'. -/
 protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
@@ -968,7 +968,7 @@ theorem [anonymous] (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (fun (_x : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) => M -> M₂) ([anonymous].{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) f)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMapₓ'. -/
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
@@ -1013,7 +1013,7 @@ def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (IsLinearMap.mk'.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
 Case conversion may be inaccurate. Consider using '#align is_linear_map.mk'_apply IsLinearMap.mk'_applyₓ'. -/
 @[simp]
 theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f x :=
@@ -1171,7 +1171,7 @@ theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (fun (_x : LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Int Int M M₂ Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_int_linear_map AddMonoidHom.coe_toIntLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) :
@@ -1205,7 +1205,7 @@ theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [A
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (fun (_x : LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_rat_linear_map AddMonoidHom.coe_toRatLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
@@ -1241,7 +1241,7 @@ instance : SMul S (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u5} M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f) x) (SMul.smul.{u3, u5} S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
 but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
+  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_apply LinearMap.smul_applyₓ'. -/
 @[simp]
 theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f) x = a • f x :=
@@ -1252,7 +1252,7 @@ theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f)
 lean 3 declaration is
   forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{succ (max u4 u5)} (M -> M₂) (coeFn.{succ (max u4 u5), succ (max u4 u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f)) (SMul.smul.{u3, max u4 u5} S (M -> M₂) (Function.hasSMul.{u4, u3, u5} M S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
 but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
+  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_smul LinearMap.coe_smulₓ'. -/
 theorem coe_smul (a : S) (f : M →ₛₗ[σ₁₂] M₂) : ⇑(a • f) = a • f :=
   rfl
@@ -1298,7 +1298,7 @@ instance : Zero (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (OfNat.mk.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.zero.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasZero.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)))) x) (OfNat.ofNat.{u4} M₂ 0 (OfNat.mk.{u4} M₂ 0 (Zero.zero.{u4} M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))))))
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5))))
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5))))
 Case conversion may be inaccurate. Consider using '#align linear_map.zero_apply LinearMap.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
@@ -1352,7 +1352,7 @@ instance : Add (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasAdd.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u4, u4, u4} M₂ M₂ M₂ (instHAdd.{u4} M₂ (AddZeroClass.toHasAdd.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.add_apply LinearMap.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x + g x :=
@@ -1396,7 +1396,7 @@ instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasNeg.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u4} N₂ (SubNegMonoid.toHasNeg.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.neg_apply LinearMap.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
@@ -1440,7 +1440,7 @@ instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasSub.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u4, u4, u4} N₂ N₂ N₂ (instHSub.{u4} N₂ (SubNegMonoid.toHasSub.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.sub_apply LinearMap.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x - g x :=
@@ -1588,7 +1588,7 @@ theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) x) x
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
 Case conversion may be inaccurate. Consider using '#align linear_map.one_apply LinearMap.one_applyₓ'. -/
 @[simp]
 theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
@@ -1599,7 +1599,7 @@ theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g) x) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.mul_apply LinearMap.mul_applyₓ'. -/
 @[simp]
 theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
@@ -1610,7 +1610,7 @@ theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (id.{succ u2} M)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_one LinearMap.coe_oneₓ'. -/
 theorem coe_one : ⇑(1 : Module.End R M) = id :=
   rfl
@@ -1620,7 +1620,7 @@ theorem coe_one : ⇑(1 : Module.End R M) = id :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u2, succ u2, succ u2} M M M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mul LinearMap.coe_mulₓ'. -/
 theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
@@ -1659,7 +1659,7 @@ instance Module.End.semiring : Semiring (Module.End R M) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Nat.castCoe.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)))))))) n) m) (SMul.smul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) n m)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
 Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_apply Module.End.natCast_applyₓ'. -/
 /-- See also `module.End.nat_cast_def`. -/
 @[simp]
@@ -1681,7 +1681,7 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} N₁ (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) N₁ N₁ (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5) => N₁ -> N₁) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5))))))) z) m) (SMul.smul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3))) z m)
 but is expected to have type
-  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
+  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_apply Module.End.intCast_applyₓ'. -/
 /-- See also `module.End.int_cast_def`. -/
 @[simp]
@@ -1750,7 +1750,7 @@ instance applyModule : Module (Module.End R M) M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u2} M (SMul.smul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toHasSmul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (MulZeroClass.toHasZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MulZeroOneClass.toMulZeroClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MonoidWithZero.toMulZeroOneClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) f a) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f a)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_def LinearMap.smul_defₓ'. -/
 @[simp]
 protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
Diff
@@ -1143,7 +1143,7 @@ theorem AddMonoidHom.toNatLinearMap_injective [AddCommMonoid M] [AddCommMonoid M
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) -> (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2))
 but is expected to have type
-  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) -> (LinearMap.{0, 0, u1, u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt))) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2))
+  forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) -> (LinearMap.{0, 0, u1, u2} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2))
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_int_linear_map AddMonoidHom.toIntLinearMapₓ'. -/
 /-- Reinterpret an additive homomorphism as a `ℤ`-linear map. -/
 def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) : M →ₗ[ℤ] M₂
@@ -1157,7 +1157,7 @@ def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_int_linear_map_injective AddMonoidHom.toIntLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M₂] :
     Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) :=
@@ -1171,7 +1171,7 @@ theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (fun (_x : LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Int Int M M₂ Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt)))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_int_linear_map AddMonoidHom.coe_toIntLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) :
@@ -1191,7 +1191,7 @@ def AddMonoidHom.toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)], Function.Injective.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat))))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)], Function.Injective.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.to_rat_linear_map_injective AddMonoidHom.toRatLinearMap_injectiveₓ'. -/
 theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
     [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) :=
@@ -1205,7 +1205,7 @@ theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [A
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (fun (_x : LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat))))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat)))))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_rat_linear_map AddMonoidHom.coe_toRatLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
Diff
@@ -195,7 +195,7 @@ include i
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} {F : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : F) [i : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f x)) (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} {_inst_1 : Semiring.{u4} R} {_inst_2 : Semiring.{u5} S} {_inst_3 : AddCommMonoid.{u1} M} {_inst_6 : AddCommMonoid.{u3} M₃} {_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3} {_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6} {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_invₓ'. -/
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
Diff
@@ -1679,7 +1679,7 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
 
 /- warning: module.End.int_cast_apply -> Module.End.intCast_apply is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} N₁ (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) N₁ N₁ (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5) => N₁ -> N₁) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (NonAssocRing.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toNonAssocRing.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5))))))) z) m) (SMul.smul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3))) z m)
+  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} N₁ (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) N₁ N₁ (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5) => N₁ -> N₁) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5))))))) z) m) (SMul.smul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3))) z m)
 but is expected to have type
   forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_apply Module.End.intCast_applyₓ'. -/
@@ -1899,7 +1899,7 @@ theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
 
 /- warning: module.End.int_cast_def -> Module.End.intCast_def is a dubious translation:
 lean 3 declaration is
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocRing.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toNonAssocRing.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))))))) z) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (fun (_x : RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) => Int -> (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.hasCoeToFun.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.semiring (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddCommGroupWithOne.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toAddCommGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))))))) z) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (fun (_x : RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) => Int -> (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.hasCoeToFun.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.semiring (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 but is expected to have type
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_def Module.End.intCast_defₓ'. -/
Diff
@@ -718,7 +718,7 @@ theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} (MulOpposite.{u1} R) S (MulOpposite.nonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.instNonAssocSemiringMulOpposite.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.nonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.semiring.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.semiring.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_op LinearMap.ext_ring_opₓ'. -/
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
@@ -1856,7 +1856,7 @@ def toModuleEnd : S →+* Module.End R M :=
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} R) (Module.End.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.hasMul.{u1} R (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (MulOpposite.hasAdd.{u1} R (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.module.End.hasMul.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (LinearMap.hasAdd.{u1, u1, u1, u1} R R R R _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1) (Semiring.toModule.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} R) (Module.End.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.instMulMulOpposite.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.instMulEnd.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.instAddMulOpposite.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.instAddLinearMap.{u1, u1, u1, u1} R R R R _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1) (Semiring.toModule.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))
+  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} (MulOpposite.{u1} R) (Module.End.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.mul.{u1} R (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.instMulEnd.{u1, u1} R R _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1)) (MulOpposite.add.{u1} R (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.instAddLinearMap.{u1, u1, u1, u1} R R R R _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toModule.{u1} R _inst_1) (Semiring.toModule.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))
 Case conversion may be inaccurate. Consider using '#align module.module_End_self Module.moduleEndSelfₓ'. -/
 /-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `module.End R R` induced by the right
 multiplication. -/
@@ -1873,7 +1873,7 @@ def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.End R R :=
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} R (Module.End.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (Distrib.toHasMul.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (Distrib.toHasAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.module.End.hasMul.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (LinearMap.hasAdd.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) R R (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1) (Semiring.toOppositeModule.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} R (Module.End.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instMulEnd.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.instAddLinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) R R (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1) (Semiring.toOppositeModule.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.instSemiringMulOpposite.{u1} R _inst_1))))
+  forall (R : Type.{u1}) [_inst_1 : Semiring.{u1} R], RingEquiv.{u1, u1} R (Module.End.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (NonUnitalNonAssocSemiring.toMul.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instMulEnd.{u1, u1} (MulOpposite.{u1} R) R (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1)) (Distrib.toAdd.{u1} R (NonUnitalNonAssocSemiring.toDistrib.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.instAddLinearMap.{u1, u1, u1, u1} (MulOpposite.{u1} R) (MulOpposite.{u1} R) R R (MulOpposite.semiring.{u1} R _inst_1) (MulOpposite.semiring.{u1} R _inst_1) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Semiring.toOppositeModule.{u1} R _inst_1) (Semiring.toOppositeModule.{u1} R _inst_1) (RingHom.id.{u1} (MulOpposite.{u1} R) (Semiring.toNonAssocSemiring.{u1} (MulOpposite.{u1} R) (MulOpposite.semiring.{u1} R _inst_1))))
 Case conversion may be inaccurate. Consider using '#align module.module_End_self_op Module.moduleEndSelfOpₓ'. -/
 /-- The canonical (semi)ring isomorphism from `R` to `module.End Rᵐᵒᵖ R` induced by the left
 multiplication. -/
Diff
@@ -195,7 +195,7 @@ include i
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} {F : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : F) [i : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f x)) (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} {_inst_1 : Semiring.{u4} R} {_inst_2 : Semiring.{u5} S} {_inst_3 : AddCommMonoid.{u1} M} {_inst_6 : AddCommMonoid.{u3} M₃} {_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3} {_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6} {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} {_inst_1 : Semiring.{u4} R} {_inst_2 : Semiring.{u5} S} {_inst_3 : AddCommMonoid.{u1} M} {_inst_6 : AddCommMonoid.{u3} M₃} {_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3} {_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6} {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_invₓ'. -/
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -243,7 +243,7 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u3) (succ u4)} (M -> M₃) (LinearMap.toFun.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Eq.{max (succ u2) (succ u1)} (M -> M₃) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (LinearMap.toAddHom.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coeₓ'. -/
 @[simp]
 theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
@@ -254,7 +254,7 @@ theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} {f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (forall (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x)) -> (Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext LinearMap.extₓ'. -/
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
@@ -265,7 +265,7 @@ theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
+  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃), (Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12)
 Case conversion may be inaccurate. Consider using '#align linear_map.copy LinearMap.copyₓ'. -/
 /-- Copy of a `linear_map` with a new `to_fun` equal to the old one. Useful to fix definitional
 equalities. -/
@@ -280,7 +280,7 @@ protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h)) f'
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_copy LinearMap.coe_copyₓ'. -/
 @[simp]
 theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : ⇑(f.copy f' h) = f' :=
@@ -291,7 +291,7 @@ theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) :
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u3) (succ u4)} (M -> M₃) f' (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (f' : M -> M₃) (h : Eq.{max (succ u2) (succ u1)} (M -> M₃) f' (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (f : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) f) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.copy.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f f' h) f
 Case conversion may be inaccurate. Consider using '#align linear_map.copy_eq LinearMap.copy_eqₓ'. -/
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
   FunLike.ext' h
@@ -309,7 +309,7 @@ initialize_simps_projections LinearMap (toFun → apply)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : M -> M₃) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (f x) (f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (f x))), Eq.{max (succ u3) (succ u4)} ((fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
@@ -328,7 +328,7 @@ def id : M →ₗ[R] M :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10) x) x
 Case conversion may be inaccurate. Consider using '#align linear_map.id_apply LinearMap.id_applyₓ'. -/
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
   rfl
@@ -338,7 +338,7 @@ theorem id_apply (x : M) : @id R M _ _ _ x = x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} ((fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (coeFn.{succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3], Eq.{succ u2} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) a) (FunLike.coe.{succ u2, succ u2, succ u2} (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_3 _inst_3 _inst_10 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_3 _inst_3 _inst_10 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_10)) (id.{succ u2} M)
 Case conversion may be inaccurate. Consider using '#align linear_map.id_coe LinearMap.id_coeₓ'. -/
 @[simp, norm_cast]
 theorem id_coe : ((LinearMap.id : M →ₗ[R] M) : M → M) = id :=
@@ -363,7 +363,7 @@ variable (fₗ gₗ : M →ₗ[R] M₂) (f g : M →ₛₗ[σ] M₃)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u3, u1} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11), IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) fₗ)
 Case conversion may be inaccurate. Consider using '#align linear_map.is_linear LinearMap.isLinearₓ'. -/
 theorem isLinear : IsLinearMap R fₗ :=
   ⟨fₗ.map_add', fₗ.map_smul'⟩
@@ -385,7 +385,7 @@ theorem coe_injective : @Injective (M →ₛₗ[σ] M₃) (M → M₃) coeFn :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u3} M x x') -> (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {x : M} {x' : M}, (Eq.{succ u4} M x x') -> (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x'))
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_arg LinearMap.congr_argₓ'. -/
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
   FunLike.congr_arg f
@@ -395,7 +395,7 @@ protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) -> (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.congr_fun LinearMap.congr_funₓ'. -/
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
@@ -406,7 +406,7 @@ protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} {f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12} {g : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12}, Iff (Eq.{max (succ u4) (succ u3)} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) f g) (forall (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_iff LinearMap.ext_iffₓ'. -/
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
   FunLike.ext_iff
@@ -416,7 +416,7 @@ theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f) h₁ h₂) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
 Case conversion may be inaccurate. Consider using '#align linear_map.mk_coe LinearMap.mk_coeₓ'. -/
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
@@ -429,7 +429,7 @@ variable (fₗ gₗ f g)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_add LinearMap.map_addₓ'. -/
 protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
   map_add f x y
@@ -439,7 +439,7 @@ protected theorem map_add (x y : M) : f (x + y) = f x + f y :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (OfNat.ofNat.{u3} M 0 (Zero.toOfNat0.{u3} M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))) _inst_6))))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_zero LinearMap.map_zeroₓ'. -/
 protected theorem map_zero : f 0 = 0 :=
   map_zero f
@@ -449,7 +449,7 @@ protected theorem map_zero : f 0 = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
+  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
@@ -461,7 +461,7 @@ protected theorem map_smulₛₗ (c : R) (x : M) : f (c • x) = σ c • f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ (SMul.smul.{u1, u2} R M (SMulZeroClass.toHasSmul.{u1, u2} R M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u2} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u2} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (Module.toMulActionWithZero.{u1, u2} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u1, u3} R M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_5 _inst_11)))) c (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) fₗ x))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
+  forall {R : Type.{u2}} {M : Type.{u1}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u3} M₂] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] [_inst_11 : Module.{u2, u3} R M₂ _inst_1 _inst_5] (fₗ : LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (c : R) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ (HSMul.hSMul.{u2, u1, u1} R M M (instHSMul.{u2, u1} R M (SMulZeroClass.toSMul.{u2, u1} R M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u2, u1} R M (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u2, u1} R M (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u2, u1} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u2, u3, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SMulZeroClass.toSMul.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (Module.toMulActionWithZero.{u2, u3} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_1 _inst_5 _inst_11))))) c (FunLike.coe.{max (succ u1) (succ u3), succ u1, succ u3} (LinearMap.{u2, u2, u1, u3} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) fₗ x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul LinearMap.map_smulₓ'. -/
 protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
   map_smul fₗ c x
@@ -471,7 +471,7 @@ protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -481,7 +481,7 @@ protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u3, succ u4} M M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u4} M₃ 0 (OfNat.mk.{u4} M₃ 0 (Zero.zero.{u4} M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))))))) (Eq.{succ u3} M x (OfNat.ofNat.{u3} M 0 (OfNat.mk.{u3} M 0 (Zero.zero.{u3} M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), (Function.Injective.{succ u4, succ u3} M M₃ (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)) -> (forall {x : M}, Iff (Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (OfNat.ofNat.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) 0 (Zero.toOfNat0.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) x) _inst_6))))) (Eq.{succ u4} M x (OfNat.ofNat.{u4} M 0 (Zero.toOfNat0.{u4} M (AddMonoid.toZero.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iffₓ'. -/
 -- TODO: generalize to `zero_hom_class`
 @[simp]
@@ -503,7 +503,7 @@ variable (M M₃ σ) {F : Type _} (h : F)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u3} M), Eq.{succ u4} (Set.{u4} M₃) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c s)) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
+  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
 Case conversion may be inaccurate. Consider using '#align image_smul_setₛₗ image_smul_setₛₗₓ'. -/
 @[simp]
 theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
@@ -519,7 +519,7 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) c) -> (forall (s : Set.{u4} M₃), Eq.{succ u3} (Set.{u3} M) (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) s)) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s)))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
+  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
 Case conversion may be inaccurate. Consider using '#align preimage_smul_setₛₗ preimage_smul_setₛₗₓ'. -/
 theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
     h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
@@ -587,7 +587,7 @@ instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_3 : AddCommMonoid.{u1} M] [_inst_5 : AddCommMonoid.{u2} M₂] {R : Type.{u3}} {S : Type.{u4}} [_inst_13 : Semiring.{u4} S] [_inst_14 : SMul.{u3, u1} R M] [_inst_15 : Module.{u4, u1} S M _inst_13 _inst_3] [_inst_16 : SMul.{u3, u2} R M₂] [_inst_17 : Module.{u4, u2} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u1, u2, u3, u4} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u2} M₂ (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ (SMul.smul.{u3, u1} R M _inst_14 c x)) (SMul.smul.{u3, u2} R M₂ _inst_16 c (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (fun (_x : LinearMap.{u4, u4, u1, u2} S S _inst_13 _inst_13 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) => M -> M₂) (LinearMap.hasCoeToFun.{u4, u4, u1, u2} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_13))) fₗ x))
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_3 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] {R : Type.{u4}} {S : Type.{u3}} [_inst_13 : Semiring.{u3} S] [_inst_14 : SMul.{u4, u2} R M] [_inst_15 : Module.{u3, u2} S M _inst_13 _inst_3] [_inst_16 : SMul.{u4, u1} R M₂] [_inst_17 : Module.{u3, u1} S M₂ _inst_13 _inst_5] [_inst_18 : LinearMap.CompatibleSMul.{u2, u1, u4, u3} M M₂ _inst_3 _inst_5 R S _inst_13 _inst_14 _inst_15 _inst_16 _inst_17] (fₗ : LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) (c : R) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M _inst_14) c x)) (HSMul.hSMul.{u4, u1, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSMul.{u4, u1} R ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_16) c (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} S S _inst_13 _inst_13 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13)) M M₂ _inst_3 _inst_5 _inst_15 _inst_17) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} S S M M₂ _inst_13 _inst_13 _inst_3 _inst_5 _inst_15 _inst_17 (RingHom.id.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_13))) fₗ x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_of_tower LinearMap.map_smul_of_towerₓ'. -/
 @[simp]
 theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
@@ -609,7 +609,7 @@ def toAddMonoidHom : M →+ M₃ where
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u3) (succ u4)} (M -> M₃) (coeFn.{max (succ u4) (succ u3), max (succ u3) (succ u4)} (AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (fun (_x : AddMonoidHom.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) => M -> M₃) (AddMonoidHom.hasCoeToFun.{u3, u4} M M₃ (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (LinearMap.toAddMonoidHom.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u4}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u4} M] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_10 : Module.{u2, u4} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12), Eq.{max (succ u4) (succ u3)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₃) _x) (AddHomClass.toFunLike.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddZeroClass.toAdd.{u4} M (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (AddMonoidHomClass.toAddHomClass.{max u4 u3, u4, u3} (AddMonoidHom.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6)) (AddMonoidHom.addMonoidHomClass.{u4, u3} M M₃ (AddMonoid.toAddZeroClass.{u4} M (AddCommMonoid.toAddMonoid.{u4} M _inst_3)) (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))))) (LinearMap.toAddMonoidHom.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ f)) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (LinearMap.{u2, u1, u4, u3} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u4, u3} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.to_add_monoid_hom_coe LinearMap.toAddMonoidHom_coeₓ'. -/
 @[simp]
 theorem toAddMonoidHom_coe : ⇑f.toAddMonoidHom = f :=
@@ -638,7 +638,7 @@ def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
 lean 3 declaration is
   forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u4)} (M -> M₂) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ)
 but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
+  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ)) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalarsₓ'. -/
 @[simp]
 theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
@@ -649,7 +649,7 @@ theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R f
 lean 3 declaration is
   forall (R : Type.{u1}) {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u4} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u2, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u2, u4} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u4, u1, u2} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toHasSmul.{u1, u4} R M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u1, u4} R M₂ (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))) (Module.toMulActionWithZero.{u1, u4} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (fun (_x : LinearMap.{u2, u2, u3, u4} S S _inst_2 _inst_2 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) => M -> M₂) (LinearMap.hasCoeToFun.{u2, u2, u3, u4} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u2} S (Semiring.toNonAssocSemiring.{u2} S _inst_2))) fₗ x)
 but is expected to have type
-  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
+  forall (R : Type.{u1}) {S : Type.{u4}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_11 : Module.{u1, u2} R M₂ _inst_1 _inst_5] [_inst_13 : Module.{u4, u3} S M _inst_2 _inst_3] [_inst_14 : Module.{u4, u2} S M₂ _inst_2 _inst_5] [_inst_15 : LinearMap.CompatibleSMul.{u3, u2, u1, u4} M M₂ _inst_3 _inst_5 R S _inst_2 (SMulZeroClass.toSMul.{u1, u3} R M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u1, u3} R M (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) _inst_13 (SMulZeroClass.toSMul.{u1, u2} R M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u2} R M₂ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u2} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u1, u2} R M₂ _inst_1 _inst_5 _inst_11)))) _inst_14] (fₗ : LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_3 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u2} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.restrictScalars.{u1, u4, u3, u2} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_10 _inst_11 _inst_13 _inst_14 _inst_15 fₗ) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u4, u4, u3, u2} S S _inst_2 _inst_2 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) M M₂ _inst_3 _inst_5 _inst_13 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u4, u3, u2} S S M M₂ _inst_2 _inst_2 _inst_3 _inst_5 _inst_13 _inst_14 (RingHom.id.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) fₗ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.restrict_scalars_apply LinearMap.restrictScalars_applyₓ'. -/
 theorem restrictScalars_apply (fₗ : M →ₗ[S] M₂) (x) : restrictScalars R fₗ x = fₗ x :=
   rfl
@@ -696,7 +696,7 @@ theorem toAddMonoidHom_injective : Function.Injective (toAddMonoidHom : (M →
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} R S R M₃ _inst_1 _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} R S _inst_1 _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring LinearMap.ext_ringₓ'. -/
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
 @[ext]
@@ -708,7 +708,7 @@ theorem ext_ring {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_10 : Module.{u1, u2} R M _inst_1 _inst_3] {σ : RingHom.{u1, u1} R R (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} {f : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10} {g : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10}, Iff (Eq.{max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) f g) (Eq.{succ u2} M (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) (fun (_x : LinearMap.{u1, u1, u1, u2} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10) => R -> M) (LinearMap.hasCoeToFun.{u1, u1, u1, u2} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_3 (Semiring.toModule.{u1} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_3 : AddCommMonoid.{u1} M] [_inst_10 : Module.{u2, u1} R M _inst_1 _inst_3] {σ : RingHom.{u2, u2} R R (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R _inst_1)} {f : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10} {g : LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10}, Iff (Eq.{max (succ u2) (succ u1)} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) f g) (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M) (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) f (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u2, u2, u2, u1} R R _inst_1 _inst_1 σ R M (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u2, u1} R R R M _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) _inst_3 (Semiring.toModule.{u2} R _inst_1) _inst_10 σ) g (OfNat.ofNat.{u2} R 1 (One.toOfNat1.{u2} R (Semiring.toOne.{u2} R _inst_1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_iff LinearMap.ext_ring_iffₓ'. -/
 theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1 = g 1 :=
   ⟨fun h => h ▸ rfl, ext_ring⟩
@@ -718,7 +718,7 @@ theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M₃ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u3} M₃] [_inst_12 : Module.{u2, u3} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} (MulOpposite.{u1} R) S (MulOpposite.nonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12} {g : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12}, (Eq.{succ u3} M₃ (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))) (coeFn.{max (succ u1) (succ u3), max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) (fun (_x : LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) => R -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u1, u3} (MulOpposite.{u1} R) S R M₃ (MulOpposite.semiring.{u1} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u1} R 1 (OfNat.mk.{u1} R 1 (One.one.{u1} R (AddMonoidWithOne.toOne.{u1} R (AddCommMonoidWithOne.toAddMonoidWithOne.{u1} R (NonAssocSemiring.toAddCommMonoidWithOne.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))))) -> (Eq.{max (succ u1) (succ u3)} (LinearMap.{u1, u2, u1, u3} (MulOpposite.{u1} R) S (MulOpposite.semiring.{u1} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u1} R _inst_1) _inst_12) f g)
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.instNonAssocSemiringMulOpposite.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
+  forall {R : Type.{u3}} {S : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u2} S] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_12 : Module.{u2, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u2} (MulOpposite.{u3} R) S (MulOpposite.instNonAssocSemiringMulOpposite.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {f : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12} {g : LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12}, (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) f (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1)))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : R) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S R M₃ (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12 σ) g (OfNat.ofNat.{u3} R 1 (One.toOfNat1.{u3} R (Semiring.toOne.{u3} R _inst_1))))) -> (Eq.{max (succ u3) (succ u1)} (LinearMap.{u3, u2, u3, u1} (MulOpposite.{u3} R) S (MulOpposite.instSemiringMulOpposite.{u3} R _inst_1) _inst_2 σ R M₃ (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) _inst_6 (Semiring.toOppositeModule.{u3} R _inst_1) _inst_12) f g)
 Case conversion may be inaccurate. Consider using '#align linear_map.ext_ring_op LinearMap.ext_ring_opₓ'. -/
 @[ext]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
@@ -775,7 +775,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} M₃ (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u5}} {M₂ : Type.{u1}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u5} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u4, u5} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (x : M₁), Eq.{succ u6} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) x) (FunLike.coe.{max (succ u5) (succ u6), succ u5, succ u6} (LinearMap.{u4, u3, u5, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u5, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u5, u1, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) x) (FunLike.coe.{max (succ u1) (succ u6), succ u1, succ u6} (LinearMap.{u2, u3, u1, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f (FunLike.coe.{max (succ u5) (succ u1), succ u5, succ u1} (LinearMap.{u4, u2, u5, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u5, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_apply LinearMap.comp_applyₓ'. -/
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
@@ -789,7 +789,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u4) (succ u6)} ((fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (coeFn.{max (succ u4) (succ u6), max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (fun (_x : LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) => M₁ -> M₃) (LinearMap.hasCoeToFun.{u1, u3, u4, u6} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u4, succ u5, succ u6} M₁ M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u6}} {M₂ : Type.{u1}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u1} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u1} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] (f : LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (g : LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂), Eq.{max (succ u6) (succ u5)} (forall (a : M₁), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) a) (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₃ M₁ M₃ _inst_3 _inst_5 _inst_7 _inst_9 module_M₁ module_M₃ σ₁₃) (LinearMap.comp.{u4, u2, u3, u6, u1, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g)) (Function.comp.{succ u6, succ u1, succ u5} M₁ M₂ M₃ (FunLike.coe.{max (succ u1) (succ u5), succ u1, succ u5} (LinearMap.{u2, u3, u1, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u2, u3, u1, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f) (FunLike.coe.{max (succ u6) (succ u1), succ u6, succ u1} (LinearMap.{u4, u2, u6, u1} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u2, u6, u1} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_comp LinearMap.coe_compₓ'. -/
 @[simp, norm_cast]
 theorem coe_comp : (f.comp g : M₁ → M₃) = f ∘ g :=
@@ -828,7 +828,7 @@ include σ₁₃
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u4, succ u5} M₁ M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) (fun (_x : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) => M₁ -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {R₃ : Type.{u1}} {M₁ : Type.{u6}} {M₂ : Type.{u5}} {M₃ : Type.{u2}} [_inst_3 : Semiring.{u4} R₁] [_inst_4 : Semiring.{u3} R₂] [_inst_5 : Semiring.{u1} R₃] [_inst_7 : AddCommMonoid.{u6} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u2} M₃] {module_M₁ : Module.{u4, u6} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u3, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u1, u2} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4)} {σ₂₃ : RingHom.{u3, u1} R₂ R₃ (Semiring.toNonAssocSemiring.{u3} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} {σ₁₃ : RingHom.{u4, u1} R₁ R₃ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u1} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u4, u3, u1} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {f' : LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃}, (Function.Surjective.{succ u6, succ u5} M₁ M₂ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) M₁ (fun (_x : M₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₁ R₂ M₁ M₂ _inst_3 _inst_4 _inst_7 _inst_8 module_M₁ module_M₂ σ₁₂) g)) -> (Iff (Eq.{max (succ u6) (succ u2)} (LinearMap.{u4, u1, u6, u2} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u4, u3, u1, u6, u5, u2} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f' g)) (Eq.{max (succ u5) (succ u2)} (LinearMap.{u3, u1, u5, u2} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) f f'))
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_right LinearMap.cancel_rightₓ'. -/
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h => ext <| hg.forall.2 (ext_iff.1 h), fun h => h ▸ rfl⟩
@@ -838,7 +838,7 @@ theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f =
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {R₃ : Type.{u3}} {M₁ : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u2} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u4} M₁] [_inst_8 : AddCommMonoid.{u5} M₂] [_inst_9 : AddCommMonoid.{u6} M₃] {module_M₁ : Module.{u1, u4} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u2, u5} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u6} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4)} {σ₂₃ : RingHom.{u2, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u2} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u2, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u5, succ u6} M₂ M₃ (coeFn.{max (succ u5) (succ u6), max (succ u5) (succ u6)} (LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) (fun (_x : LinearMap.{u2, u3, u5, u6} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u2, u3, u5, u6} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u4) (succ u6)} (LinearMap.{u1, u3, u4, u6} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u2, u3, u4, u5, u6} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
 but is expected to have type
-  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
+  forall {R₁ : Type.{u1}} {R₂ : Type.{u4}} {R₃ : Type.{u3}} {M₁ : Type.{u2}} {M₂ : Type.{u6}} {M₃ : Type.{u5}} [_inst_3 : Semiring.{u1} R₁] [_inst_4 : Semiring.{u4} R₂] [_inst_5 : Semiring.{u3} R₃] [_inst_7 : AddCommMonoid.{u2} M₁] [_inst_8 : AddCommMonoid.{u6} M₂] [_inst_9 : AddCommMonoid.{u5} M₃] {module_M₁ : Module.{u1, u2} R₁ M₁ _inst_3 _inst_7} {module_M₂ : Module.{u4, u6} R₂ M₂ _inst_4 _inst_8} {module_M₃ : Module.{u3, u5} R₃ M₃ _inst_5 _inst_9} {σ₁₂ : RingHom.{u1, u4} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4)} {σ₂₃ : RingHom.{u4, u3} R₂ R₃ (Semiring.toNonAssocSemiring.{u4} R₂ _inst_4) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} {σ₁₃ : RingHom.{u1, u3} R₁ R₃ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_3) (Semiring.toNonAssocSemiring.{u3} R₃ _inst_5)} [_inst_10 : RingHomCompTriple.{u1, u4, u3} R₁ R₂ R₃ _inst_3 _inst_4 _inst_5 σ₁₂ σ₂₃ σ₁₃] {f : LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃} {g : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂} {g' : LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂}, (Function.Injective.{succ u6, succ u5} M₂ M₃ (FunLike.coe.{max (succ u6) (succ u5), succ u6, succ u5} (LinearMap.{u4, u3, u6, u5} R₂ R₃ _inst_4 _inst_5 σ₂₃ M₂ M₃ _inst_8 _inst_9 module_M₂ module_M₃) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u6, u5} R₂ R₃ M₂ M₃ _inst_4 _inst_5 _inst_8 _inst_9 module_M₂ module_M₃ σ₂₃) f)) -> (Iff (Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u3, u2, u5} R₁ R₃ _inst_3 _inst_5 σ₁₃ M₁ M₃ _inst_7 _inst_9 module_M₁ module_M₃) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g) (LinearMap.comp.{u1, u4, u3, u2, u6, u5} R₁ R₂ R₃ M₁ M₂ M₃ _inst_3 _inst_4 _inst_5 _inst_7 _inst_8 _inst_9 module_M₁ module_M₂ module_M₃ σ₁₂ σ₂₃ σ₁₃ _inst_10 f g')) (Eq.{max (succ u2) (succ u6)} (LinearMap.{u1, u4, u2, u6} R₁ R₂ _inst_3 _inst_4 σ₁₂ M₁ M₂ _inst_7 _inst_8 module_M₁ module_M₂) g g'))
 Case conversion may be inaccurate. Consider using '#align linear_map.cancel_left LinearMap.cancel_leftₓ'. -/
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h => ext fun x => hf <| by rw [← comp_apply, h, comp_apply], fun h => h ▸ rfl⟩
@@ -854,7 +854,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMon
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
 but is expected to have type
-  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
+  forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_7 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_8 : Module.{u2, u4} S M₂ _inst_2 _inst_5] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_9 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) (g : M₂ -> M), (Function.LeftInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (Function.RightInverse.{succ u3, succ u4} M M₂ g (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ _inst_3 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 _inst_3 _inst_5 _inst_7 _inst_8 σ) f)) -> (LinearMap.{u2, u1, u4, u3} S R _inst_2 _inst_1 σ' M₂ M _inst_5 _inst_3 _inst_8 _inst_7)
 Case conversion may be inaccurate. Consider using '#align linear_map.inverse LinearMap.inverseₓ'. -/
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
@@ -883,7 +883,7 @@ variable (f : M →ₛₗ[σ] M₂)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (SubNegMonoid.toHasNeg.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3))) x)) (Neg.neg.{u4} M₂ (SubNegMonoid.toHasNeg.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (Neg.neg.{u3} M (NegZeroClass.toNeg.{u3} M (SubNegZeroMonoid.toNegZeroClass.{u3} M (SubtractionMonoid.toSubNegZeroMonoid.{u3} M (SubtractionCommMonoid.toSubtractionMonoid.{u3} M (AddCommGroup.toDivisionAddCommMonoid.{u3} M _inst_3))))) x)) (Neg.neg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (NegZeroClass.toNeg.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubNegZeroMonoid.toNegZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_4))))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_neg LinearMap.map_negₓ'. -/
 protected theorem map_neg (x : M) : f (-x) = -f x :=
   map_neg f x
@@ -893,7 +893,7 @@ protected theorem map_neg (x : M) : f (-x) = -f x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u1, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u2, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toHasSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} M₂ M₂ M₂ (instHSub.{u4} M₂ (SubNegMonoid.toHasSub.{u4} M₂ (AddGroup.toSubNegMonoid.{u4} M₂ (AddCommGroup.toAddGroup.{u4} M₂ _inst_4)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
 but is expected to have type
-  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
+  forall {R : Type.{u2}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommGroup.{u3} M] [_inst_4 : AddCommGroup.{u4} M₂] {module_M : Module.{u2, u3} R M _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3)} {module_M₂ : Module.{u1, u4} S M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4)} {σ : RingHom.{u2, u1} R S (Semiring.toNonAssocSemiring.{u2} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) (x : M) (y : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f (HSub.hSub.{u3, u3, u3} M M M (instHSub.{u3} M (SubNegMonoid.toSub.{u3} M (AddGroup.toSubNegMonoid.{u3} M (AddCommGroup.toAddGroup.{u3} M _inst_3)))) x y)) (HSub.hSub.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) y) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SubNegMonoid.toSub.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddGroup.toSubNegMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommGroup.toAddGroup.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_4)))) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R S _inst_1 _inst_2 σ M M₂ (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R S M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₂ _inst_4) module_M module_M₂ σ) f y))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_sub LinearMap.map_subₓ'. -/
 protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
@@ -968,7 +968,7 @@ theorem [anonymous] (f : M →+[R] M₂) : f.toLinearMap = ↑f :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((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} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (DistribMulActionHom.LinearMap.hasCoe.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) f)) (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (fun (_x : DistribMulActionHom.{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) => M -> M₂) ([anonymous].{u1, u2, u3} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) f)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] (f : DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (DistribMulActionHom.toLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u3, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u3, u2} R M (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4)))) (SMulZeroClass.toSMul.{u3, u1} R M₂ (AddMonoid.toZero.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u3, u1} R M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u3, u1} R M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u1, u3, u2, u1} (DistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)) R M M₂ (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5) (DistribMulActionHom.instDistribMulActionHomClassDistribMulActionHom.{u3, u2, u1} R (MonoidWithZero.toMonoid.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) M (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u3, u2} R M _inst_1 _inst_2 _inst_4) M₂ (AddCommMonoid.toAddMonoid.{u1} M₂ _inst_3) (Module.toDistribMulAction.{u3, u1} R M₂ _inst_1 _inst_3 _inst_5)))) f)
 Case conversion may be inaccurate. Consider using '#align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMapₓ'. -/
 @[simp, norm_cast]
 theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
@@ -1013,7 +1013,7 @@ def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u3} M₂ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (IsLinearMap.mk'.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
+  forall {R : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u1} M₂] [_inst_4 : Module.{u3, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u3, u1} R M₂ _inst_1 _inst_3] {f : M -> M₂} (H : IsLinearMap.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_2 _inst_3 _inst_4 _inst_5) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, u1} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (IsLinearMap.mk'.{u3, u2, u1} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 f H) x) (f x)
 Case conversion may be inaccurate. Consider using '#align is_linear_map.mk'_apply IsLinearMap.mk'_applyₓ'. -/
 @[simp]
 theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f x :=
@@ -1171,7 +1171,7 @@ theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : AddCommGroup.{u2} M₂] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) (fun (_x : LinearMap.{0, 0, u1, u2} Int Int Int.semiring Int.semiring (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2)) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Int Int M M₂ Int.semiring Int.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_2) (AddCommGroup.intModule.{u1} M _inst_1) (AddCommGroup.intModule.{u2} M₂ _inst_2) (RingHom.id.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.semiring))) (AddMonoidHom.toIntLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_2))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt)))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : AddCommGroup.{u1} M₂] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Int Int Int.instSemiringInt Int.instSemiringInt (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Int Int M M₂ Int.instSemiringInt Int.instSemiringInt (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_2) (AddCommGroup.intModule.{u2} M _inst_1) (AddCommGroup.intModule.{u1} M₂ _inst_2) (RingHom.id.{0} Int (NonAssocRing.toNonAssocSemiring.{0} Int (Ring.toNonAssocRing.{0} Int Int.instRingInt)))) (AddMonoidHom.toIntLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_2))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_int_linear_map AddMonoidHom.coe_toIntLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+ M₂) :
@@ -1205,7 +1205,7 @@ theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [A
 lean 3 declaration is
   forall {M : Type.{u1}} {M₂ : Type.{u2}} [_inst_1 : AddCommGroup.{u1} M] [_inst_2 : Module.{0, u1} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1)] [_inst_3 : AddCommGroup.{u2} M₂] [_inst_4 : Module.{0, u2} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3)] (f : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))), Eq.{max (succ u1) (succ u2)} (M -> M₂) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) (fun (_x : LinearMap.{0, 0, u1, u2} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring)) M M₂ (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4) => M -> M₂) (LinearMap.hasCoeToFun.{0, 0, u1, u2} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (Semiring.toNonAssocSemiring.{0} Rat Rat.semiring))) (AddMonoidHom.toRatLinearMap.{u1, u2} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (coeFn.{max (succ u2) (succ u1), max (succ u1) (succ u2)} (AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) (fun (_x : AddMonoidHom.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) => M -> M₂) (AddMonoidHom.hasCoeToFun.{u1, u2} M M₂ (AddMonoid.toAddZeroClass.{u1} M (SubNegMonoid.toAddMonoid.{u1} M (AddGroup.toSubNegMonoid.{u1} M (AddCommGroup.toAddGroup.{u1} M _inst_1)))) (AddMonoid.toAddZeroClass.{u2} M₂ (SubNegMonoid.toAddMonoid.{u2} M₂ (AddGroup.toSubNegMonoid.{u2} M₂ (AddCommGroup.toAddGroup.{u2} M₂ _inst_3))))) f)
 but is expected to have type
-  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat))))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat)))))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
+  forall {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : AddCommGroup.{u2} M] [_inst_2 : Module.{0, u2} Rat M Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1)] [_inst_3 : AddCommGroup.{u1} M₂] [_inst_4 : Module.{0, u1} Rat M₂ Rat.semiring (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3)] (f : AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))), Eq.{max (succ u2) (succ u1)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{0, 0, u2, u1} Rat Rat Rat.semiring Rat.semiring (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat))))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{0, 0, u2, u1} Rat Rat M M₂ Rat.semiring Rat.semiring (AddCommGroup.toAddCommMonoid.{u2} M _inst_1) (AddCommGroup.toAddCommMonoid.{u1} M₂ _inst_3) _inst_2 _inst_4 (RingHom.id.{0} Rat (NonAssocRing.toNonAssocSemiring.{0} Rat (Ring.toNonAssocRing.{0} Rat (StrictOrderedRing.toRing.{0} Rat (LinearOrderedRing.toStrictOrderedRing.{0} Rat Rat.instLinearOrderedRingRat)))))) (AddMonoidHom.toRatLinearMap.{u2, u1} M M₂ _inst_1 _inst_2 _inst_3 _inst_4 f)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M) => M₂) _x) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1))))) (AddZeroClass.toAdd.{u1} M₂ (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) (AddMonoidHomClass.toAddHomClass.{max u2 u1, u2, u1} (AddMonoidHom.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))) M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3)))) (AddMonoidHom.addMonoidHomClass.{u2, u1} M M₂ (AddMonoid.toAddZeroClass.{u2} M (SubNegMonoid.toAddMonoid.{u2} M (AddGroup.toSubNegMonoid.{u2} M (AddCommGroup.toAddGroup.{u2} M _inst_1)))) (AddMonoid.toAddZeroClass.{u1} M₂ (SubNegMonoid.toAddMonoid.{u1} M₂ (AddGroup.toSubNegMonoid.{u1} M₂ (AddCommGroup.toAddGroup.{u1} M₂ _inst_3))))))) f)
 Case conversion may be inaccurate. Consider using '#align add_monoid_hom.coe_to_rat_linear_map AddMonoidHom.coe_toRatLinearMapₓ'. -/
 @[simp]
 theorem AddMonoidHom.coe_toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
@@ -1241,7 +1241,7 @@ instance : SMul S (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u5} M₂ (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f) x) (SMul.smul.{u3, u5} S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
 but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
+  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f) x) (HSMul.hSMul.{u1, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5) _inst_12)))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_apply LinearMap.smul_applyₓ'. -/
 @[simp]
 theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f) x = a • f x :=
@@ -1252,7 +1252,7 @@ theorem smul_apply (a : S) (f : M →ₛₗ[σ₁₂] M₂) (x : M) : (a • f)
 lean 3 declaration is
   forall {R : Type.{u1}} {R₂ : Type.{u2}} {S : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u4} M] [_inst_5 : AddCommMonoid.{u5} M₂] [_inst_7 : Module.{u1, u4} R M _inst_1 _inst_4] [_inst_8 : Module.{u2, u5} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R R₂ (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} [_inst_11 : Monoid.{u3} S] [_inst_12 : DistribMulAction.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u2, u3, u5} R₂ S M₂ (SMulZeroClass.toHasSmul.{u2, u5} R₂ M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (SMulWithZero.toSmulZeroClass.{u2, u5} R₂ M₂ (MulZeroClass.toHasZero.{u2} R₂ (MulZeroOneClass.toMulZeroClass.{u2} R₂ (MonoidWithZero.toMulZeroOneClass.{u2} R₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2)))) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (MulActionWithZero.toSMulWithZero.{u2, u5} R₂ M₂ (Semiring.toMonoidWithZero.{u2} R₂ _inst_2) (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (Module.toMulActionWithZero.{u2, u5} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{succ (max u4 u5)} (M -> M₂) (coeFn.{succ (max u4 u5), succ (max u4 u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (SMul.smul.{u3, max u4 u5} S (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.hasSmul.{u1, u2, u3, u4, u5} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13) a f)) (SMul.smul.{u3, max u4 u5} S (M -> M₂) (Function.hasSMul.{u4, u3, u5} M S M₂ (SMulZeroClass.toHasSmul.{u3, u5} S M₂ (AddZeroClass.toHasZero.{u5} M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5))) (DistribSMul.toSmulZeroClass.{u3, u5} S M₂ (AddMonoid.toAddZeroClass.{u5} M₂ (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u3, u5} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u5} M₂ _inst_5) _inst_12)))) a (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (fun (_x : LinearMap.{u1, u2, u4, u5} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u4, u5} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
 but is expected to have type
-  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
+  forall {R : Type.{u5}} {R₂ : Type.{u4}} {S : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u2}} [_inst_1 : Semiring.{u5} R] [_inst_2 : Semiring.{u4} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u2} M₂] [_inst_7 : Module.{u5, u3} R M _inst_1 _inst_4] [_inst_8 : Module.{u4, u2} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u5, u4} R R₂ (Semiring.toNonAssocSemiring.{u5} R _inst_1) (Semiring.toNonAssocSemiring.{u4} R₂ _inst_2)} [_inst_11 : Monoid.{u1} S] [_inst_12 : DistribMulAction.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)] [_inst_13 : SMulCommClass.{u4, u1, u2} R₂ S M₂ (SMulZeroClass.toSMul.{u4, u2} R₂ M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (SMulWithZero.toSMulZeroClass.{u4, u2} R₂ M₂ (MonoidWithZero.toZero.{u4} R₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2)) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (MulActionWithZero.toSMulWithZero.{u4, u2} R₂ M₂ (Semiring.toMonoidWithZero.{u4} R₂ _inst_2) (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (Module.toMulActionWithZero.{u4, u2} R₂ M₂ _inst_2 _inst_5 _inst_8)))) (SMulZeroClass.toSMul.{u1, u2} S M₂ (AddMonoid.toZero.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S M₂ (AddMonoid.toAddZeroClass.{u2} M₂ (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S M₂ _inst_11 (AddCommMonoid.toAddMonoid.{u2} M₂ _inst_5) _inst_12)))] (a : S) (f : LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8), Eq.{max (succ u3) (succ u2)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (instHSMul.{u1, max u3 u2} S (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) (LinearMap.instSMulLinearMap.{u5, u4, u1, u3, u2} R R₂ S M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂ _inst_11 _inst_12 _inst_13)) a f)) (HSMul.hSMul.{u1, max u3 u2, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (instHSMul.{u1, max u3 u2} S (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (Pi.instSMul.{u3, u2, u1} M S (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) a) (fun (i : M) => SMulZeroClass.toSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddMonoid.toAddZeroClass.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_5)) (DistribMulAction.toDistribSMul.{u1, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_11 (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) i) _inst_5) _inst_12))))) a (FunLike.coe.{max (succ u3) (succ u2), succ u3, succ u2} (LinearMap.{u5, u4, u3, u2} R R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_7 _inst_8) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u5, u4, u3, u2} R R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_7 _inst_8 σ₁₂) f))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_smul LinearMap.coe_smulₓ'. -/
 theorem coe_smul (a : S) (f : M →ₛₗ[σ₁₂] M₂) : ⇑(a • f) = a • f :=
   rfl
@@ -1298,7 +1298,7 @@ instance : Zero (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (OfNat.mk.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.zero.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasZero.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)))) x) (OfNat.ofNat.{u4} M₂ 0 (OfNat.mk.{u4} M₂ 0 (Zero.zero.{u4} M₂ (AddZeroClass.toHasZero.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5))))))
 but is expected to have type
-  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5))))
+  forall {R₁ : Type.{u2}} {R₂ : Type.{u1}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u2} R₁] [_inst_2 : Semiring.{u1} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u2, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u2, u1} R₁ R₂ (Semiring.toNonAssocSemiring.{u2} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u1} R₂ _inst_2)} (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u3) (succ u4), succ u3, succ u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (OfNat.ofNat.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) 0 (Zero.toOfNat0.{max u3 u4} (LinearMap.{u2, u1, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instZeroLinearMap.{u2, u1, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂))) x) (OfNat.ofNat.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) 0 (Zero.toOfNat0.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5))))
 Case conversion may be inaccurate. Consider using '#align linear_map.zero_apply LinearMap.zero_applyₓ'. -/
 @[simp]
 theorem zero_apply (x : M) : (0 : M →ₛₗ[σ₁₂] M₂) x = 0 :=
@@ -1352,7 +1352,7 @@ instance : Add (M →ₛₗ[σ₁₂] M₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_5 : AddCommMonoid.{u4} M₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u2, u4} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u4} M₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.hasAdd.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u4, u4, u4} M₂ M₂ M₂ (instHAdd.{u4} M₂ (AddZeroClass.toHasAdd.{u4} M₂ (AddMonoid.toAddZeroClass.{u4} M₂ (AddCommMonoid.toAddMonoid.{u4} M₂ _inst_5)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {M₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_5 : AddCommMonoid.{u1} M₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_11 : Module.{u3, u1} R₂ M₂ _inst_2 _inst_5] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) (HAdd.hAdd.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (instHAdd.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) (LinearMap.instAddLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂)) f g) x) (HAdd.hAdd.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (instHAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddZeroClass.toAdd.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddMonoid.toAddZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) (AddCommMonoid.toAddMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) x) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M M₂ _inst_4 _inst_5 _inst_10 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M M₂ _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.add_apply LinearMap.add_applyₓ'. -/
 @[simp]
 theorem add_apply (f g : M →ₛₗ[σ₁₂] M₂) (x : M) : (f + g) x = f x + g x :=
@@ -1396,7 +1396,7 @@ instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasNeg.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u4} N₂ (SubNegMonoid.toHasNeg.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (Neg.neg.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instNegLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂) f) x) (Neg.neg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (NegZeroClass.toNeg.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubNegZeroMonoid.toNegZeroClass.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubtractionMonoid.toSubNegZeroMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubtractionCommMonoid.toSubtractionMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (AddCommGroup.toDivisionAddCommMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) _inst_8))))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.neg_apply LinearMap.neg_applyₓ'. -/
 @[simp]
 theorem neg_apply (f : M →ₛₗ[σ₁₂] N₂) (x : M) : (-f) x = -f x :=
@@ -1440,7 +1440,7 @@ instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
 lean 3 declaration is
   forall {R₁ : Type.{u1}} {R₂ : Type.{u2}} {M : Type.{u3}} {N₂ : Type.{u4}} [_inst_1 : Semiring.{u1} R₁] [_inst_2 : Semiring.{u2} R₂] [_inst_4 : AddCommMonoid.{u3} M] [_inst_8 : AddCommGroup.{u4} N₂] [_inst_10 : Module.{u1, u3} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u2, u4} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8)] {σ₁₂ : RingHom.{u1, u2} R₁ R₂ (Semiring.toNonAssocSemiring.{u1} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u2} R₂ _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u4} N₂ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u3 u4, max u3 u4, max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u3 u4} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.hasSub.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u4, u4, u4} N₂ N₂ N₂ (instHSub.{u4} N₂ (SubNegMonoid.toHasSub.{u4} N₂ (AddGroup.toSubNegMonoid.{u4} N₂ (AddCommGroup.toAddGroup.{u4} N₂ _inst_8)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) (fun (_x : LinearMap.{u1, u2, u3, u4} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14) => M -> N₂) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u4} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
 but is expected to have type
-  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
+  forall {R₁ : Type.{u4}} {R₂ : Type.{u3}} {M : Type.{u2}} {N₂ : Type.{u1}} [_inst_1 : Semiring.{u4} R₁] [_inst_2 : Semiring.{u3} R₂] [_inst_4 : AddCommMonoid.{u2} M] [_inst_8 : AddCommGroup.{u1} N₂] [_inst_10 : Module.{u4, u2} R₁ M _inst_1 _inst_4] [_inst_14 : Module.{u3, u1} R₂ N₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8)] {σ₁₂ : RingHom.{u4, u3} R₁ R₂ (Semiring.toNonAssocSemiring.{u4} R₁ _inst_1) (Semiring.toNonAssocSemiring.{u3} R₂ _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (g : LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) (HSub.hSub.{max u2 u1, max u2 u1, max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (instHSub.{max u2 u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) (LinearMap.instSubLinearMapToAddCommMonoid.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 _inst_8 _inst_10 _inst_14 σ₁₂)) f g) x) (HSub.hSub.{u1, u1, u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (instHSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (SubNegMonoid.toSub.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (AddGroup.toSubNegMonoid.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) (AddCommGroup.toAddGroup.{u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) x) _inst_8)))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) f x) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R₁ R₂ _inst_1 _inst_2 σ₁₂ M N₂ _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => N₂) _x) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R₁ R₂ M N₂ _inst_1 _inst_2 _inst_4 (AddCommGroup.toAddCommMonoid.{u1} N₂ _inst_8) _inst_10 _inst_14 σ₁₂) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.sub_apply LinearMap.sub_applyₓ'. -/
 @[simp]
 theorem sub_apply (f g : M →ₛₗ[σ₁₂] N₂) (x : M) : (f - g) x = f x - g x :=
@@ -1588,7 +1588,7 @@ theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) x) x
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) x) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4))) x) x
 Case conversion may be inaccurate. Consider using '#align linear_map.one_apply LinearMap.one_applyₓ'. -/
 @[simp]
 theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
@@ -1599,7 +1599,7 @@ theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g) x) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g x))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (x : M), Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g x))
 Case conversion may be inaccurate. Consider using '#align linear_map.mul_apply LinearMap.mul_applyₓ'. -/
 @[simp]
 theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
@@ -1610,7 +1610,7 @@ theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (OfNat.mk.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.one.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (id.{succ u2} M)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2], Eq.{succ u2} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) ᾰ) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (OfNat.ofNat.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) 1 (One.toOfNat1.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (id.{succ u2} M)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_one LinearMap.coe_oneₓ'. -/
 theorem coe_one : ⇑(1 : Module.End R M) = id :=
   rfl
@@ -1620,7 +1620,7 @@ theorem coe_one : ⇑(1 : Module.End R M) = id :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (M -> M) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (HMul.hMul.{u2, u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (instHMul.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u2, succ u2, succ u2} M M M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (g : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4), Eq.{succ u1} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) ᾰ) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (HMul.hMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (instHMul.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (LinearMap.instMulEnd.{u2, u1} R M _inst_1 _inst_2 _inst_4)) f g)) (Function.comp.{succ u1, succ u1, succ u1} M M M (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mul LinearMap.coe_mulₓ'. -/
 theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
@@ -1659,7 +1659,7 @@ instance Module.End.semiring : Semiring (Module.End R M) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} M (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Nat.castCoe.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)))))))) n) m) (SMul.smul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) n m)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (n : Nat) (m : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Nat.cast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) n) m) (HSMul.hSMul.{0, u2, u2} Nat M M (instHSMul.{0, u2} Nat M (AddMonoid.SMul.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) n m)
 Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_apply Module.End.natCast_applyₓ'. -/
 /-- See also `module.End.nat_cast_def`. -/
 @[simp]
@@ -1681,7 +1681,7 @@ instance Module.End.ring : Ring (Module.End R N₁) :=
 lean 3 declaration is
   forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} N₁ (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) N₁ N₁ (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5) => N₁ -> N₁) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (NonAssocRing.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toNonAssocRing.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5))))))) z) m) (SMul.smul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3))) z m)
 but is expected to have type
-  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
+  forall {R : Type.{u1}} {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommGroup.{u2} N₁] [_inst_5 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3)] (z : Int) (m : N₁), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : N₁) => N₁) m) (FunLike.coe.{succ u2, succ u2, succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) N₁ (fun (_x : N₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : N₁) => N₁) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u2} R R N₁ N₁ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5 _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_3) _inst_5) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_3 _inst_5)) z) m) (HSMul.hSMul.{0, u2, u2} Int N₁ N₁ (instHSMul.{0, u2} Int N₁ (SubNegMonoid.SMulInt.{u2} N₁ (AddGroup.toSubNegMonoid.{u2} N₁ (AddCommGroup.toAddGroup.{u2} N₁ _inst_3)))) z m)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_apply Module.End.intCast_applyₓ'. -/
 /-- See also `module.End.int_cast_def`. -/
 @[simp]
@@ -1750,7 +1750,7 @@ instance applyModule : Module (Module.End R M) M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] (f : Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u2} M (SMul.smul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toHasSmul.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (SMulWithZero.toSmulZeroClass.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (MulZeroClass.toHasZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MulZeroOneClass.toMulZeroClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (MonoidWithZero.toMulZeroOneClass.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (MulActionWithZero.toSMulWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4)) (AddZeroClass.toHasZero.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2))) (Module.toMulActionWithZero.{u2, u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u1, u2} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) f a) (coeFn.{succ u2, succ u2} (Module.End.{u1, u2} R M _inst_1 _inst_2 _inst_4) (fun (_x : LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M _inst_2 _inst_2 _inst_4 _inst_4) => M -> M) (LinearMap.hasCoeToFun.{u1, u1, u2, u2} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f a)
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
+  forall {R : Type.{u2}} {M : Type.{u1}} [_inst_1 : Semiring.{u2} R] [_inst_2 : AddCommMonoid.{u1} M] [_inst_4 : Module.{u2, u1} R M _inst_1 _inst_2] (f : Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (a : M), Eq.{succ u1} M (HSMul.hSMul.{u1, u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M M (instHSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (SMulZeroClass.toSMul.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (SMulWithZero.toSMulZeroClass.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (LinearMap.instZeroLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (MulActionWithZero.toSMulWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Semiring.toMonoidWithZero.{u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_2)) (Module.toMulActionWithZero.{u1, u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (Module.End.semiring.{u2, u1} R M _inst_1 _inst_2 _inst_4) _inst_2 (LinearMap.applyModule.{u2, u1} R M _inst_1 _inst_2 _inst_4)))))) f a) (FunLike.coe.{succ u1, succ u1, succ u1} (Module.End.{u2, u1} R M _inst_1 _inst_2 _inst_4) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, u1, u1} R R M M _inst_1 _inst_1 _inst_2 _inst_2 _inst_4 _inst_4 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1))) f a)
 Case conversion may be inaccurate. Consider using '#align linear_map.smul_def LinearMap.smul_defₓ'. -/
 @[simp]
 protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
@@ -1890,7 +1890,7 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
 lean 3 declaration is
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))))) n) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (fun (_x : RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) => Nat -> (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.hasCoeToFun.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
 but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
 Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_def Module.End.natCast_defₓ'. -/
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
     (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
@@ -1901,7 +1901,7 @@ theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
 lean 3 declaration is
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocRing.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toNonAssocRing.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))))))) z) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (fun (_x : RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) => Int -> (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.hasCoeToFun.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.semiring (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2391 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_def Module.End.intCast_defₓ'. -/
 theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
     (↑z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=
Diff
@@ -195,7 +195,7 @@ include i
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} {F : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : F) [i : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f x)) (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i))) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} {_inst_1 : Semiring.{u4} R} {_inst_2 : Semiring.{u5} S} {_inst_3 : AddCommMonoid.{u1} M} {_inst_6 : AddCommMonoid.{u3} M₃} {_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3} {_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6} {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u4}} {S : Type.{u5}} {M : Type.{u1}} {M₃ : Type.{u3}} {F : Type.{u2}} {_inst_1 : Semiring.{u4} R} {_inst_2 : Semiring.{u5} S} {_inst_3 : AddCommMonoid.{u1} M} {_inst_6 : AddCommMonoid.{u3} M₃} {_inst_10 : Module.{u4, u1} R M _inst_1 _inst_3} {_inst_12 : Module.{u5, u3} S M₃ _inst_2 _inst_6} {σ : RingHom.{u4, u5} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u5} S _inst_2)} (f : F) [i : SemilinearMapClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {σ' : RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)} [_inst_13 : RingHomInvPair.{u4, u5} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (HSMul.hSMul.{u5, u3, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (instHSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (SMulZeroClass.toSMul.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u5, u3} S ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f x)) (FunLike.coe.{succ u2, succ u1, succ u3} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u2, u1, u3} F M M₃ (AddZeroClass.toAdd.{u1} M (AddMonoid.toAddZeroClass.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3))) (AddZeroClass.toAdd.{u3} M₃ (AddMonoid.toAddZeroClass.{u3} M₃ (AddCommMonoid.toAddMonoid.{u3} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u2, u4, u5, u1, u3} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 i)) f (HSMul.hSMul.{u4, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M M (instHSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (SMulZeroClass.toSMul.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (MonoidWithZero.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (Semiring.toMonoidWithZero.{u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u4, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) _x) (MulHomClass.toFunLike.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u5} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u5, u5, u4} (RingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1) (RingHom.instRingHomClassRingHom.{u5, u4} S R (Semiring.toNonAssocSemiring.{u5} S _inst_2) (Semiring.toNonAssocSemiring.{u4} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_invₓ'. -/
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -297,13 +297,11 @@ theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f
   FunLike.ext' h
 #align linear_map.copy_eq LinearMap.copy_eq
 
-#print LinearMap.Simps.apply /-
 /-- See Note [custom simps projection]. -/
 protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+* S) (M M₃ : Type _)
     [AddCommMonoid M] [AddCommMonoid M₃] [Module R M] [Module S M₃] (f : M →ₛₗ[σ] M₃) : M → M₃ :=
   f
 #align linear_map.simps.apply LinearMap.Simps.apply
--/
 
 initialize_simps_projections LinearMap (toFun → apply)
 
@@ -311,7 +309,7 @@ initialize_simps_projections LinearMap (toFun → apply)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : M -> M₃) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (f x) (f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (f x))), Eq.{max (succ u3) (succ u4)} ((fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁ h₂)) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (a : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) a) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) f y))), Eq.{max (succ u2) (succ u1)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) a) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) a) (LinearMap.instFunLikeLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 f h₁)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, succ u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) a) (AddHomClass.toFunLike.{max u2 u1, u2, u1} (AddHom.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)))) M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHom.addHomClass.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))))) f)
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_mk LinearMap.coe_mkₓ'. -/
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : M → M₃) (h₁ h₂) :
@@ -418,7 +416,7 @@ theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : M) (y : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HAdd.hAdd.{u3, u3, u3} M M M (instHAdd.{u3} M (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3)))) x y)) (HAdd.hAdd.{u4, u4, u4} M₃ M₃ M₃ (instHAdd.{u4} M₃ (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6)))) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f y))) (h₂ : forall (r : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) r x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ r) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))), Eq.{max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f) h₁ h₂) f
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
+  forall {R : Type.{u4}} {S : Type.{u3}} {M : Type.{u2}} {M₃ : Type.{u1}} [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] {σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)} (f : LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (h₁ : forall (x : R) (y : M), Eq.{succ u1} M₃ (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) (HSMul.hSMul.{u4, u2, u2} R M M (instHSMul.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10))))) x y)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ M₃ (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) x) M₃ _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ x) (AddHom.toFun.{u2, u1} M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) y))), Eq.{max (succ u2) (succ u1)} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (LinearMap.mk.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (AddHomClass.toAddHom.{u2, u1, max u2 u1} M M₃ (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{max u2 u1, u4, u3, u2, u1} (LinearMap.{u4, u3, u2, u1} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 (LinearMap.instSemilinearMapClassLinearMap.{u4, u3, u2, u1} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ)) f) h₁) f
 Case conversion may be inaccurate. Consider using '#align linear_map.mk_coe LinearMap.mk_coeₓ'. -/
 @[simp]
 theorem mk_coe (f : M →ₛₗ[σ] M₃) (h₁ h₂) : (LinearMap.mk f h₁ h₂ : M →ₛₗ[σ] M₃) = f :=
@@ -451,7 +449,7 @@ protected theorem map_zero : f 0 = 0 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} M₃ (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) c x)) (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
+  forall {R : Type.{u3}} {S : Type.{u1}} {M : Type.{u2}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u3, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u1, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)} (f : LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (c : R) (x : M), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u2, u2} R M M (instHSMul.{u3, u2} R M (SMulZeroClass.toSMul.{u3, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u2} R M (MonoidWithZero.toZero.{u3} R (Semiring.toMonoidWithZero.{u3} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u2} R M (Semiring.toMonoidWithZero.{u3} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u3, u2} R M _inst_1 _inst_3 _inst_10))))) c x)) (HSMul.hSMul.{u1, u4, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (SMulZeroClass.toSMul.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (MonoidWithZero.toZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (Semiring.toMonoidWithZero.{u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2) (AddMonoid.toZero.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u1, u4} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) (FunLike.coe.{max (succ u3) (succ u1), succ u3, succ u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u1} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u1} S (Semiring.toNonAssocSemiring.{u1} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u1, u3, u1} (RingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2) (RingHom.instRingHomClassRingHom.{u3, u1} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u1} S _inst_2))))) σ c) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u3, u1, u2, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u1, u2, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smulₛₗ LinearMap.map_smulₛₗₓ'. -/
 -- TODO: `simp` isn't picking up `map_smulₛₗ` for `linear_map`s without specifying `map_smulₛₗ f`
 @[simp]
@@ -473,7 +471,7 @@ protected theorem map_smul (c : R) (x : M) : fₗ (c • x) = c • fₗ x :=
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} {M : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] {σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)} (f : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)} [_inst_13 : RingHomInvPair.{u1, u2} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u4} M₃ (SMul.smul.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12)))) c (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (coeFn.{max (succ u3) (succ u4), max (succ u3) (succ u4)} (LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) (fun (_x : LinearMap.{u1, u2, u3, u4} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u2, u3, u4} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (SMul.smul.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10)))) (coeFn.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (fun (_x : RingHom.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) => S -> R) (RingHom.hasCoeToFun.{u2, u1} S R (Semiring.toNonAssocSemiring.{u2} S _inst_2) (Semiring.toNonAssocSemiring.{u1} R _inst_1)) σ' c) x))
 but is expected to have type
-  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
+  forall {R : Type.{u3}} {S : Type.{u4}} {M : Type.{u1}} {M₃ : Type.{u2}} [_inst_1 : Semiring.{u3} R] [_inst_2 : Semiring.{u4} S] [_inst_3 : AddCommMonoid.{u1} M] [_inst_6 : AddCommMonoid.{u2} M₃] [_inst_10 : Module.{u3, u1} R M _inst_1 _inst_3] [_inst_12 : Module.{u4, u2} S M₃ _inst_2 _inst_6] {σ : RingHom.{u3, u4} R S (Semiring.toNonAssocSemiring.{u3} R _inst_1) (Semiring.toNonAssocSemiring.{u4} S _inst_2)} (f : LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) {σ' : RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)} [_inst_13 : RingHomInvPair.{u3, u4} R S _inst_1 _inst_2 σ σ'] (c : S) (x : M), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (HSMul.hSMul.{u4, u2, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (instHSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (SMulZeroClass.toSMul.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (SMulWithZero.toSMulZeroClass.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (MonoidWithZero.toZero.{u4} S (Semiring.toMonoidWithZero.{u4} S _inst_2)) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (MulActionWithZero.toSMulWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (Semiring.toMonoidWithZero.{u4} S _inst_2) (AddMonoid.toZero.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) (AddCommMonoid.toAddMonoid.{u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_6)) (Module.toMulActionWithZero.{u4, u2} S ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) x) _inst_2 _inst_6 _inst_12))))) c (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f x)) (FunLike.coe.{max (succ u1) (succ u2), succ u1, succ u2} (LinearMap.{u3, u4, u1, u2} R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u3, u4, u1, u2} R S M M₃ _inst_1 _inst_2 _inst_3 _inst_6 _inst_10 _inst_12 σ) f (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M M (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1)) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) _inst_1) (AddMonoid.toZero.{u1} M (AddCommMonoid.toAddMonoid.{u1} M _inst_3)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) c) M _inst_1 _inst_3 _inst_10))))) (FunLike.coe.{max (succ u3) (succ u4), succ u4, succ u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S (fun (_x : S) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : S) => R) _x) (MulHomClass.toFunLike.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonUnitalNonAssocSemiring.toMul.{u4} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2))) (NonUnitalNonAssocSemiring.toMul.{u3} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (NonUnitalRingHomClass.toMulHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} S (Semiring.toNonAssocSemiring.{u4} S _inst_2)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomClass.toNonUnitalRingHomClass.{max u3 u4, u4, u3} (RingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1)) S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1) (RingHom.instRingHomClassRingHom.{u4, u3} S R (Semiring.toNonAssocSemiring.{u4} S _inst_2) (Semiring.toNonAssocSemiring.{u3} R _inst_1))))) σ' c) x))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_smul_inv LinearMap.map_smul_invₓ'. -/
 protected theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
@@ -505,7 +503,7 @@ variable (M M₃ σ) {F : Type _} (h : F)
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u3} M), Eq.{succ u4} (Set.{u4} M₃) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c s)) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) (Set.image.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
+  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] (c : R) (s : Set.{u2} M), Eq.{succ u1} (Set.{u1} M₃) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c s)) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) (Set.image.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s))
 Case conversion may be inaccurate. Consider using '#align image_smul_setₛₗ image_smul_setₛₗₓ'. -/
 @[simp]
 theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
@@ -521,7 +519,7 @@ theorem image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M
 lean 3 declaration is
   forall {R : Type.{u1}} {S : Type.{u2}} (M : Type.{u3}) (M₃ : Type.{u4}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u2} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_6 : AddCommMonoid.{u4} M₃] [_inst_10 : Module.{u1, u3} R M _inst_1 _inst_3] [_inst_12 : Module.{u2, u4} S M₃ _inst_2 _inst_6] (σ : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u1} R (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) c) -> (forall (s : Set.{u4} M₃), Eq.{succ u3} (Set.{u3} M) (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) (SMul.smul.{u2, u4} S (Set.{u4} M₃) (Set.smulSet.{u2, u4} S M₃ (SMulZeroClass.toHasSmul.{u2, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u4} S M₃ (MulZeroClass.toHasZero.{u2} S (MulZeroOneClass.toMulZeroClass.{u2} S (MonoidWithZero.toMulZeroOneClass.{u2} S (Semiring.toMonoidWithZero.{u2} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u4} S M₃ (Semiring.toMonoidWithZero.{u2} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (Module.toMulActionWithZero.{u2, u4} S M₃ _inst_2 _inst_6 _inst_12))))) (coeFn.{max (succ u1) (succ u2), max (succ u1) (succ u2)} (RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) (fun (_x : RingHom.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) => R -> S) (RingHom.hasCoeToFun.{u1, u2} R S (Semiring.toNonAssocSemiring.{u1} R _inst_1) (Semiring.toNonAssocSemiring.{u2} S _inst_2)) σ c) s)) (SMul.smul.{u1, u3} R (Set.{u3} M) (Set.smulSet.{u1, u3} R M (SMulZeroClass.toHasSmul.{u1, u3} R M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (SMulWithZero.toSmulZeroClass.{u1, u3} R M (MulZeroClass.toHasZero.{u1} R (MulZeroOneClass.toMulZeroClass.{u1} R (MonoidWithZero.toMulZeroOneClass.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (MulActionWithZero.toSMulWithZero.{u1, u3} R M (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (Module.toMulActionWithZero.{u1, u3} R M _inst_1 _inst_3 _inst_10))))) c (Set.preimage.{u3, u4} M M₃ (coeFn.{succ u5, max (succ u3) (succ u4)} F (fun (_x : F) => M -> M₃) (FunLike.hasCoeToFun.{succ u5, succ u3, succ u4} F M (fun (_x : M) => M₃) (AddHomClass.toFunLike.{u5, u3, u4} F M M₃ (AddZeroClass.toHasAdd.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_3))) (AddZeroClass.toHasAdd.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u1, u2, u3, u4} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13))) h) s)))
 but is expected to have type
-  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
+  forall {R : Type.{u4}} {S : Type.{u3}} (M : Type.{u2}) (M₃ : Type.{u1}) [_inst_1 : Semiring.{u4} R] [_inst_2 : Semiring.{u3} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_6 : AddCommMonoid.{u1} M₃] [_inst_10 : Module.{u4, u2} R M _inst_1 _inst_3] [_inst_12 : Module.{u3, u1} S M₃ _inst_2 _inst_6] (σ : RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) {F : Type.{u5}} (h : F) [_inst_13 : SemilinearMapClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12] {c : R}, (IsUnit.{u4} R (MonoidWithZero.toMonoid.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) c) -> (forall (s : Set.{u1} M₃), Eq.{succ u2} (Set.{u2} M) (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) (HSMul.hSMul.{u3, u1, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.{u1} M₃) (instHSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Set.{u1} M₃) (Set.smulSet.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (SMulZeroClass.toSMul.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (SMulWithZero.toSMulZeroClass.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (MonoidWithZero.toZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2)) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (MulActionWithZero.toSMulWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ (Semiring.toMonoidWithZero.{u3} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) _inst_2) (AddMonoid.toZero.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6)) (Module.toMulActionWithZero.{u3, u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) c) M₃ _inst_2 _inst_6 _inst_12)))))) (FunLike.coe.{max (succ u4) (succ u3), succ u4, succ u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R (fun (_x : R) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : R) => S) _x) (MulHomClass.toFunLike.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonUnitalNonAssocSemiring.toMul.{u4} R (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1))) (NonUnitalNonAssocSemiring.toMul.{u3} S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2))) (NonUnitalRingHomClass.toMulHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u4} R (Semiring.toNonAssocSemiring.{u4} R _inst_1)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u3} S (Semiring.toNonAssocSemiring.{u3} S _inst_2)) (RingHomClass.toNonUnitalRingHomClass.{max u4 u3, u4, u3} (RingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2)) R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2) (RingHom.instRingHomClassRingHom.{u4, u3} R S (Semiring.toNonAssocSemiring.{u4} R _inst_1) (Semiring.toNonAssocSemiring.{u3} S _inst_2))))) σ c) s)) (HSMul.hSMul.{u4, u2, u2} R (Set.{u2} M) (Set.{u2} M) (instHSMul.{u4, u2} R (Set.{u2} M) (Set.smulSet.{u4, u2} R M (SMulZeroClass.toSMul.{u4, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (SMulWithZero.toSMulZeroClass.{u4, u2} R M (MonoidWithZero.toZero.{u4} R (Semiring.toMonoidWithZero.{u4} R _inst_1)) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (MulActionWithZero.toSMulWithZero.{u4, u2} R M (Semiring.toMonoidWithZero.{u4} R _inst_1) (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)) (Module.toMulActionWithZero.{u4, u2} R M _inst_1 _inst_3 _inst_10)))))) c (Set.preimage.{u2, u1} M M₃ (FunLike.coe.{succ u5, succ u2, succ u1} F M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.398 : M) => M₃) _x) (AddHomClass.toFunLike.{u5, u2, u1} F M M₃ (AddZeroClass.toAdd.{u2} M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3))) (AddZeroClass.toAdd.{u1} M₃ (AddMonoid.toAddZeroClass.{u1} M₃ (AddCommMonoid.toAddMonoid.{u1} M₃ _inst_6))) (SemilinearMapClass.toAddHomClass.{u5, u4, u3, u2, u1} F R S _inst_1 _inst_2 σ M M₃ _inst_3 _inst_6 _inst_10 _inst_12 _inst_13)) h) s)))
 Case conversion may be inaccurate. Consider using '#align preimage_smul_setₛₗ preimage_smul_setₛₗₓ'. -/
 theorem preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c) (s : Set M₃) :
     h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
@@ -1892,7 +1890,7 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
 lean 3 declaration is
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (HasLiftT.mk.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (CoeTCₓ.coe.{1, succ u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddMonoidWithOne.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toAddCommMonoidWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))))) n) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (fun (_x : RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) => Nat -> (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.hasCoeToFun.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
 but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (n : Nat) [_inst_7 : AddCommMonoid.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 _inst_7], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Nat.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNatCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) n) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (fun (_x : Nat) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Nat) => Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Nat (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Nat (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Nat (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Semiring.toNonAssocSemiring.{0} Nat Nat.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Nat N₁ _inst_1 _inst_7 _inst_8 Nat.semiring (AddCommMonoid.natModule.{u2} N₁ _inst_7) (AddMonoid.nat_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))) n)
 Case conversion may be inaccurate. Consider using '#align module.End.nat_cast_def Module.End.natCast_defₓ'. -/
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
     (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
@@ -1903,7 +1901,7 @@ theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
 lean 3 declaration is
   forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) ((fun (a : Type) (b : Type.{u2}) [self : HasLiftT.{1, succ u2} a b] => self.0) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (HasLiftT.mk.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (CoeTCₓ.coe.{1, succ u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.castCoe.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (AddGroupWithOne.toHasIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocRing.toAddGroupWithOne.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toNonAssocRing.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8))))))) z) (coeFn.{succ u2, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (fun (_x : RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) => Int -> (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.hasCoeToFun.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.semiring) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.semiring (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 but is expected to have type
-  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2398 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
+  forall (R : Type.{u1}) {N₁ : Type.{u2}} [_inst_1 : Semiring.{u1} R] (z : Int) [_inst_7 : AddCommGroup.{u2} N₁] [_inst_8 : Module.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7)], Eq.{succ u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Int.cast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Ring.toIntCast.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.ring.{u1, u2} R N₁ _inst_1 _inst_7 _inst_8)) z) (FunLike.coe.{succ u2, 1, succ u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (fun (_x : Int) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.2372 : Int) => Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) _x) (MulHomClass.toFunLike.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonUnitalNonAssocSemiring.toMul.{0} Int (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt))) (NonUnitalNonAssocSemiring.toMul.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))) (NonUnitalRingHomClass.toMulHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{0} Int (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt)) (NonAssocSemiring.toNonUnitalNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) (RingHomClass.toNonUnitalRingHomClass.{u2, 0, u2} (RingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)) (RingHom.instRingHomClassRingHom.{0, u2} Int (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Semiring.toNonAssocSemiring.{0} Int Int.instSemiringInt) (Semiring.toNonAssocSemiring.{u2} (Module.End.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8) (Module.End.semiring.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8)))))) (Module.toModuleEnd.{u1, 0, u2} R Int N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8 Int.instSemiringInt (AddCommGroup.intModule.{u2} N₁ _inst_7) (AddGroup.int_smulCommClass.{u1, u2} R N₁ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommGroup.toAddGroup.{u2} N₁ _inst_7) (Module.toDistribMulAction.{u1, u2} R N₁ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} N₁ _inst_7) _inst_8))) z)
 Case conversion may be inaccurate. Consider using '#align module.End.int_cast_def Module.End.intCast_defₓ'. -/
 theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
     (↑z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=

Changes in mathlib4

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

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

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

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

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

Diff
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne Baanen,
   Frédéric Dupuis, Heather Macbeth
 -/
+import Mathlib.Algebra.Module.Basic
 import Mathlib.Algebra.Module.Pi
 import Mathlib.Algebra.Ring.CompTypeclasses
 import Mathlib.Algebra.Star.Basic
chore: redistribute a few results from Algebra.Module.Submodule.LinearMap (#12295)

These don't involve submodules at all.

Diff
@@ -934,6 +934,15 @@ theorem default_def : (default : M →ₛₗ[σ₁₂] M₂) = 0 :=
   rfl
 #align linear_map.default_def LinearMap.default_def
 
+instance uniqueOfLeft [Subsingleton M] : Unique (M →ₛₗ[σ₁₂] M₂) :=
+  { inferInstanceAs (Inhabited (M →ₛₗ[σ₁₂] M₂)) with
+    uniq := fun f => ext fun x => by rw [Subsingleton.elim x 0, map_zero, map_zero] }
+#align linear_map.unique_of_left LinearMap.uniqueOfLeft
+
+instance uniqueOfRight [Subsingleton M₂] : Unique (M →ₛₗ[σ₁₂] M₂) :=
+  coe_injective.unique
+#align linear_map.unique_of_right LinearMap.uniqueOfRight
+
 /-- The sum of two linear maps is linear. -/
 instance : Add (M →ₛₗ[σ₁₂] M₂) :=
   ⟨fun f g ↦
@@ -1009,6 +1018,22 @@ instance addCommGroup : AddCommGroup (M →ₛₗ[σ₁₂] N₂) :=
   DFunLike.coe_injective.addCommGroup _ rfl (fun _ _ ↦ rfl) (fun _ ↦ rfl) (fun _ _ ↦ rfl)
     (fun _ _ ↦ rfl) fun _ _ ↦ rfl
 
+/-- Evaluation of a `σ₁₂`-linear map at a fixed `a`, as an `AddMonoidHom`. -/
+@[simps]
+def evalAddMonoidHom (a : M) : (M →ₛₗ[σ₁₂] M₂) →+ M₂ where
+  toFun f := f a
+  map_add' f g := LinearMap.add_apply f g a
+  map_zero' := rfl
+#align linear_map.eval_add_monoid_hom LinearMap.evalAddMonoidHom
+
+/-- `LinearMap.toAddMonoidHom` promoted to an `AddMonoidHom`. -/
+@[simps]
+def toAddMonoidHom' : (M →ₛₗ[σ₁₂] M₂) →+ M →+ M₂ where
+  toFun := toAddMonoidHom
+  map_zero' := by ext; rfl
+  map_add' := by intros; ext; rfl
+#align linear_map.to_add_monoid_hom' LinearMap.toAddMonoidHom'
+
 end Arithmetic
 
 section Actions
chore: remove mathport name: <expression> lines (#11928)

Quoting [@digama0](https://github.com/digama0):

These were actually never meant to go in the file, they are basically debugging information and only useful on significantly broken mathport files. You can safely remove all of them.

Diff
@@ -94,16 +94,13 @@ add_decl_doc LinearMap.toMulActionHom
 add_decl_doc LinearMap.toAddHom
 #align linear_map.to_add_hom LinearMap.toAddHom
 
--- mathport name: «expr →ₛₗ[ ] »
 /-- `M →ₛₗ[σ] N` is the type of `σ`-semilinear maps from `M` to `N`. -/
 notation:25 M " →ₛₗ[" σ:25 "] " M₂:0 => LinearMap σ M M₂
 
 /-- `M →ₗ[R] N` is the type of `R`-linear maps from `M` to `N`. -/
--- mathport name: «expr →ₗ[ ] »
 notation:25 M " →ₗ[" R:25 "] " M₂:0 => LinearMap (RingHom.id R) M M₂
 
 /-- `M →ₗ⋆[R] N` is the type of `R`-conjugate-linear maps from `M` to `N`. -/
--- mathport name: «expr →ₗ⋆[ ] »
 notation:25 M " →ₗ⋆[" R:25 "] " M₂:0 => LinearMap (starRingEnd R) M M₂
 
 /-- `SemilinearMapClass F σ M M₂` asserts `F` is a type of bundled `σ`-semilinear maps `M → M₂`.
feat: MulActionHom in the semilinear style (#6057)

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

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

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

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

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

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

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

The above types have corresponding classes:

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

Notation

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

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

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

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

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

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

Diff
@@ -84,12 +84,12 @@ is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. -/
 structure LinearMap {R S : Type*} [Semiring R] [Semiring S] (σ : R →+* S) (M : Type*)
     (M₂ : Type*) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] extends
-    AddHom M M₂ where
-  /-- A linear map preserves scalar multiplication.
-  We prefer the spelling `_root_.map_smul` instead. -/
-  protected map_smul' : ∀ (r : R) (x : M), toFun (r • x) = σ r • toFun x
+    AddHom M M₂, MulActionHom σ M M₂
 #align linear_map LinearMap
 
+/-- The `MulActionHom` underlying a `LinearMap`. -/
+add_decl_doc LinearMap.toMulActionHom
+
 /-- The `AddHom` underlying a `LinearMap`. -/
 add_decl_doc LinearMap.toAddHom
 #align linear_map.to_add_hom LinearMap.toAddHom
@@ -114,12 +114,9 @@ A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ :
 is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `f (c • x) = (σ c) • f x`. -/
 class SemilinearMapClass (F : Type*) {R S : outParam (Type*)} [Semiring R] [Semiring S]
-  (σ : outParam (R →+* S)) (M M₂ : outParam Type*) [AddCommMonoid M] [AddCommMonoid M₂]
-  [Module R M] [Module S M₂] [FunLike F M M₂]
-  extends AddHomClass F M M₂ : Prop where
-  /-- A semilinear map preserves scalar multiplication up to some ring homomorphism `σ`.
-  See also `_root_.map_smul` for the case where `σ` is the identity. -/
-  map_smulₛₗ : ∀ (f : F) (r : R) (x : M), f (r • x) = σ r • f x
+  (σ : outParam (R →+* S)) (M M₂ : outParam (Type*)) [AddCommMonoid M] [AddCommMonoid M₂]
+    [Module R M] [Module S M₂] [FunLike F M M₂]
+    extends AddHomClass F M M₂, MulActionSemiHomClass F σ M M₂ : Prop
 #align semilinear_map_class SemilinearMapClass
 
 end
@@ -128,8 +125,6 @@ end
 -- `σ` becomes a metavariable but that's fine because it's an `outParam`
 -- attribute [nolint dangerousInstance] SemilinearMapClass.toAddHomClass
 
-export SemilinearMapClass (map_smulₛₗ)
-
 -- `map_smulₛₗ` should be `@[simp]` but doesn't fire due to `lean4#3701`.
 -- attribute [simp] map_smulₛₗ
 
@@ -143,6 +138,12 @@ abbrev LinearMapClass (F : Type*) (R : outParam (Type*)) (M M₂ : Type*)
   SemilinearMapClass F (RingHom.id R) M M₂
 #align linear_map_class LinearMapClass
 
+@[simp high]
+protected lemma LinearMapClass.map_smul {R M M₂ : outParam (Type*)} [Semiring R] [AddCommMonoid M]
+    [AddCommMonoid M₂] [Module R M] [Module R M₂]
+    {F : Type*} [FunLike F M M₂] [LinearMapClass F R M M₂] (f : F) (r : R) (x : M) :
+    f (r • x) = r • f x := by rw [_root_.map_smul]
+
 namespace SemilinearMapClass
 
 variable (F : Type*)
@@ -160,10 +161,11 @@ instance (priority := 100) instAddMonoidHomClass [FunLike F M M₃] [SemilinearM
         rw [← zero_smul R (0 : M), map_smulₛₗ]
         simp }
 
-instance (priority := 100) distribMulActionHomClass [FunLike F M M₂] [LinearMapClass F R M M₂] :
-    DistribMulActionHomClass F R M M₂ :=
-  { SemilinearMapClass.instAddMonoidHomClass F with
-    map_smul := fun f c x ↦ by rw [map_smulₛₗ, RingHom.id_apply] }
+instance (priority := 100) distribMulActionSemiHomClass
+    [FunLike F M M₃] [SemilinearMapClass F σ M M₃] :
+    DistribMulActionSemiHomClass F σ M M₃ :=
+  { SemilinearMapClass.toAddHomClass with
+    map_smulₛₗ := fun f c x ↦ by rw [map_smulₛₗ] }
 
 variable {F} (f : F) [FunLike F M M₃] [SemilinearMapClass F σ M M₃]
 
@@ -228,7 +230,7 @@ instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M
 #noalign LinearMap.has_coe_to_fun
 
 /-- The `DistribMulActionHom` underlying a `LinearMap`. -/
-def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂ :=
+def toDistribMulActionHom (f : M →ₛₗ[σ] M₃) : DistribMulActionHom σ.toMonoidHom M M₃ :=
   { f with map_zero' := show f 0 = 0 from map_zero f }
 #align linear_map.to_distrib_mul_action_hom LinearMap.toDistribMulActionHom
 
@@ -288,7 +290,7 @@ theorem toLinearMap_injective {F : Type*} [FunLike F M M₃] [SemilinearMapClass
 
 /-- Identity map as a `LinearMap` -/
 def id : M →ₗ[R] M :=
-  { DistribMulActionHom.id R with }
+  { DistribMulActionHom.id R with toFun := _root_.id }
 #align linear_map.id LinearMap.id
 
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
@@ -412,7 +414,7 @@ instance (priority := 100) IsScalarTower.compatibleSMul [SMul R S]
 
 instance IsScalarTower.compatibleSMul' [SMul R S] [IsScalarTower R S M] :
     CompatibleSMul S M R S where
-  __ := IsScalarTower.smulHomClass R S M (S →ₗ[S] M)
+  map_smul := (IsScalarTower.smulHomClass R S M (S →ₗ[S] M)).map_smulₛₗ
 
 @[simp]
 theorem map_smul_of_tower [CompatibleSMul M M₂ R S] (fₗ : M →ₗ[S] M₂) (c : R) (x : M) :
@@ -667,14 +669,30 @@ end Module
 
 namespace DistribMulActionHom
 
-variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
+variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃]
+variable [Semiring R] [Module R M] [Semiring S] [Module S M₂] [Module R M₃]
+variable {σ : R →+* S}
+
+/-- A `DistribMulActionHom` between two modules is a linear map. -/
+@[coe]
+def toSemilinearMap (fₗ : M →ₑ+[σ.toMonoidHom] M₂) : M →ₛₗ[σ] M₂ :=
+  { fₗ with }
+
+instance : SemilinearMapClass (M →ₑ+[σ.toMonoidHom] M₂) σ M M₂ where
+
+instance : CoeTC (M →ₑ+[σ.toMonoidHom] M₂) (M →ₛₗ[σ] M₂) :=
+  ⟨toSemilinearMap⟩
 
 /-- A `DistribMulActionHom` between two modules is a linear map. -/
-instance instLinearMapClass : LinearMapClass (M →+[R] M₂) R M M₂ where
-  map_smulₛₗ := map_smul
+def toLinearMap (fₗ : M →+[R] M₃) : M →ₗ[R] M₃ :=
+  { fₗ with }
+#align distrib_mul_action_hom.to_linear_map DistribMulActionHom.toLinearMap
 
-instance instCoeTCLinearMap : CoeTC (M →+[R] M₂) (M →ₗ[R] M₂) where
-  coe f := SemilinearMapClass.semilinearMap f
+instance instCoeTCLinearMap : CoeTC (M →+[R] M₃) (M →ₗ[R] M₃) :=
+  ⟨toLinearMap⟩
+
+/-- A `DistribMulActionHom` between two modules is a linear map. -/
+instance : LinearMapClass (M →+[R] M₃) R M M₃ where
 
 -- Porting note: because coercions get unfolded, there is no need for this rewrite
 #noalign distrib_mul_action_hom.to_linear_map_eq_coe
@@ -682,11 +700,12 @@ instance instCoeTCLinearMap : CoeTC (M →+[R] M₂) (M →ₗ[R] M₂) where
 -- Porting note: removed @[norm_cast] attribute due to error:
 -- norm_cast: badly shaped lemma, rhs can't start with coe
 @[simp]
-theorem coe_toLinearMap (f : M →+[R] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
+theorem coe_toLinearMap (f : M →ₑ+[σ.toMonoidHom] M₂) : ((f : M →ₛₗ[σ] M₂) : M → M₂) = f :=
   rfl
 #align distrib_mul_action_hom.coe_to_linear_map DistribMulActionHom.coe_toLinearMap
 
-theorem toLinearMap_injective {f g : M →+[R] M₂} (h : (f : M →ₗ[R] M₂) = (g : M →ₗ[R] M₂)) :
+theorem toLinearMap_injective {f g : M →ₑ+[σ.toMonoidHom] M₂}
+    (h : (f : M →ₛₗ[σ] M₂) = (g : M →ₛₗ[σ] M₂)) :
     f = g := by
   ext m
   exact LinearMap.congr_fun h m
refactor(Algebra/Module): Use coercion from SemilinearMapClass to SemilinearMap (#10758)

This PR adds a coercion from any instance of SemilinearMapClass to SemilinearMap. This is the standard practice for other parts of the library, such as ring homs (see also the recent change #10368). I also expect this change will help with some rough edges in #6057. Previously, a coercion from f : AlgHom to LinearMap would look like f.toNonUnitalAlgHom.toDistribMulActionHom.toLinearMap, now it should look like SemilinearMapClass.semilinearMap f.

The new coercion instances are CoeHead since the left hand side is a free variable F. I redefined the existing DistribMulActionHom → LinearMap coercion in terms of the SemilinearMapClass coercion to ensure we don't get any diamonds.

Diff
@@ -172,11 +172,16 @@ theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
 #align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_inv
 
 /-- Reinterpret an element of a type of semilinear maps as a semilinear map. -/
-abbrev semilinearMap : M →ₛₗ[σ] M₃ where
+@[coe]
+def semilinearMap : M →ₛₗ[σ] M₃ where
   toFun := f
   map_add' := map_add f
   map_smul' := map_smulₛₗ f
 
+/-- Reinterpret an element of a type of semilinear maps as a semilinear map. -/
+instance instCoeToSemilinearMap : CoeHead F (M →ₛₗ[σ] M₃) where
+  coe f := semilinearMap f
+
 end SemilinearMapClass
 
 namespace LinearMapClass
@@ -186,6 +191,10 @@ variable {F : Type*} [Semiring R] [AddCommMonoid M₁] [AddCommMonoid M₂] [Mod
 /-- Reinterpret an element of a type of linear maps as a linear map. -/
 abbrev linearMap : M₁ →ₗ[R] M₂ := SemilinearMapClass.semilinearMap f
 
+/-- Reinterpret an element of a type of linear maps as a linear map. -/
+instance instCoeToLinearMap : CoeHead F (M₁ →ₗ[R] M₂) where
+  coe f := SemilinearMapClass.semilinearMap f
+
 end LinearMapClass
 
 namespace LinearMap
@@ -266,6 +275,17 @@ theorem coe_addHom_mk {σ : R →+* S} (f : AddHom M M₃) (h) :
     ((LinearMap.mk f h : M →ₛₗ[σ] M₃) : AddHom M M₃) = f :=
   rfl
 
+theorem coe_semilinearMap {F : Type*} [FunLike F M M₃] [SemilinearMapClass F σ M M₃] (f : F) :
+    ((f : M →ₛₗ[σ] M₃) : M → M₃) = f :=
+  rfl
+
+theorem toLinearMap_injective {F : Type*} [FunLike F M M₃] [SemilinearMapClass F σ M M₃]
+    {f g : F} (h : (f : M →ₛₗ[σ] M₃) = (g : M →ₛₗ[σ] M₃)) :
+    f = g := by
+  apply DFunLike.ext
+  intro m
+  exact DFunLike.congr_fun h m
+
 /-- Identity map as a `LinearMap` -/
 def id : M →ₗ[R] M :=
   { DistribMulActionHom.id R with }
@@ -650,13 +670,11 @@ namespace DistribMulActionHom
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
 
 /-- A `DistribMulActionHom` between two modules is a linear map. -/
-@[coe]
-def toLinearMap (fₗ : M →+[R] M₂) : M →ₗ[R] M₂ :=
-  { fₗ with }
-#align distrib_mul_action_hom.to_linear_map DistribMulActionHom.toLinearMap
+instance instLinearMapClass : LinearMapClass (M →+[R] M₂) R M M₂ where
+  map_smulₛₗ := map_smul
 
-instance : CoeTC (M →+[R] M₂) (M →ₗ[R] M₂) :=
-  ⟨toLinearMap⟩
+instance instCoeTCLinearMap : CoeTC (M →+[R] M₂) (M →ₗ[R] M₂) where
+  coe f := SemilinearMapClass.semilinearMap f
 
 -- Porting note: because coercions get unfolded, there is no need for this rewrite
 #noalign distrib_mul_action_hom.to_linear_map_eq_coe
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -226,7 +226,7 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 @[simp]
 theorem coe_toAddHom (f : M →ₛₗ[σ] M₃) : ⇑f.toAddHom = f := rfl
 
--- porting note: no longer a `simp`
+-- Porting note: no longer a `simp`
 theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) := rfl
 #align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coe
 
@@ -441,7 +441,7 @@ See also `LinearMap.map_smul_of_tower`. -/
   map_smul' := fₗ.map_smul_of_tower
 #align linear_map.restrict_scalars LinearMap.restrictScalars
 
--- porting note: generalized from `Algebra` to `CompatibleSMul`
+-- Porting note: generalized from `Algebra` to `CompatibleSMul`
 instance coeIsScalarTower : CoeHTCT (M →ₗ[S] M₂) (M →ₗ[R] M₂) :=
   ⟨restrictScalars R⟩
 #align linear_map.coe_is_scalar_tower LinearMap.coeIsScalarTower
feat(Algebra/Module/LinearMap/Basic): module structures of (semi)-linear maps over DomMulAct of a ring (#10766)

splitted from #8559

These are written by @alreadydone

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

Diff
@@ -7,6 +7,7 @@ Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne
 import Mathlib.Algebra.Module.Pi
 import Mathlib.Algebra.Ring.CompTypeclasses
 import Mathlib.Algebra.Star.Basic
+import Mathlib.GroupTheory.GroupAction.DomAct.Basic
 import Mathlib.GroupTheory.GroupAction.Hom
 
 #align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
@@ -831,6 +832,32 @@ instance [DistribMulAction Sᵐᵒᵖ M₂] [SMulCommClass R₂ Sᵐᵒᵖ M₂]
     IsCentralScalar S (M →ₛₗ[σ₁₂] M₂) where
   op_smul_eq_smul _ _ := ext fun _ ↦ op_smul_eq_smul _ _
 
+variable {S' T' : Type*}
+variable [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M]
+variable [Monoid T'] [DistribMulAction T' M] [SMulCommClass R T' M]
+
+instance : SMul S'ᵈᵐᵃ (M →ₛₗ[σ₁₂] M₂) where
+  smul a f :=
+    { toFun := a • (f : M → M₂)
+      map_add' := fun x y ↦ by simp only [DomMulAct.smul_apply, f.map_add, smul_add]
+      map_smul' := fun c x ↦ by simp_rw [DomMulAct.smul_apply, ← smul_comm, f.map_smulₛₗ] }
+
+theorem _root_.DomMulAct.smul_linearMap_apply (a : S'ᵈᵐᵃ) (f : M →ₛₗ[σ₁₂] M₂) (x : M) :
+    (a • f) x = f (DomMulAct.mk.symm a • x) :=
+  rfl
+
+@[simp]
+theorem _root_.DomMulAct.mk_smul_linearMap_apply (a : S') (f : M →ₛₗ[σ₁₂] M₂) (x : M) :
+    (DomMulAct.mk a • f) x = f (a • x) :=
+  rfl
+
+theorem  _root_.DomMulAct.coe_smul_linearMap (a : S'ᵈᵐᵃ) (f : M →ₛₗ[σ₁₂] M₂) :
+    (a • f : M →ₛₗ[σ₁₂] M₂) = a • (f : M → M₂) :=
+  rfl
+
+instance [SMulCommClass S' T' M] : SMulCommClass S'ᵈᵐᵃ T'ᵈᵐᵃ (M →ₛₗ[σ₁₂] M₂) :=
+  ⟨fun s t f ↦ ext fun m ↦ by simp_rw [DomMulAct.smul_linearMap_apply, smul_comm]⟩
+
 end SMul
 
 /-! ### Arithmetic on the codomain -/
@@ -982,11 +1009,18 @@ theorem comp_smul [Module R M₂] [Module R M₃] [SMulCommClass R S M₂] [Dist
   ext fun _ ↦ g.map_smul_of_tower _ _
 #align linear_map.comp_smul LinearMap.comp_smul
 
+instance {S'} [Monoid S'] [DistribMulAction S' M] [SMulCommClass R S' M] :
+    DistribMulAction S'ᵈᵐᵃ (M →ₛₗ[σ₁₂] M₂) where
+  one_smul _ := ext fun _ ↦ congr_arg _ (one_smul _ _)
+  mul_smul _ _ _ := ext fun _ ↦ congr_arg _ (mul_smul _ _ _)
+  smul_add _ _ _ := ext fun _ ↦ rfl
+  smul_zero _ := ext fun _ ↦ rfl
+
 end SMul
 
 section Module
 
-variable [Semiring S] [Module S M₂] [SMulCommClass R₂ S M₂]
+variable [Semiring S] [Module S M] [Module S M₂] [SMulCommClass R₂ S M₂]
 
 instance module : Module S (M →ₛₗ[σ₁₂] M₂) where
   add_smul _ _ _ := ext fun _ ↦ add_smul _ _ _
@@ -995,6 +1029,11 @@ instance module : Module S (M →ₛₗ[σ₁₂] M₂) where
 instance [NoZeroSMulDivisors S M₂] : NoZeroSMulDivisors S (M →ₛₗ[σ₁₂] M₂) :=
   coe_injective.noZeroSMulDivisors _ rfl coe_smul
 
+instance [SMulCommClass R S M] : Module Sᵈᵐᵃ (M →ₛₗ[σ₁₂] M₂) where
+  add_smul _ _ _ := ext fun _ ↦ by
+    simp_rw [add_apply, DomMulAct.smul_linearMap_apply, ← map_add, ← add_smul]; rfl
+  zero_smul _ := ext fun _ ↦ by erw [DomMulAct.smul_linearMap_apply, zero_smul, map_zero]; rfl
+
 end Module
 
 end Actions
refactor(Data/FunLike): use unbundled inheritance from FunLike (#8386)

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

Zulip thread

Important changes

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

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

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

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

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

Similarly, MyEquivClass should take EquivLike as a parameter.

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

Remaining issues

Slower (failing) search

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

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

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

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

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

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

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

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

simp not firing sometimes

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

Missing instances due to unification failing

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

Workaround for issues

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

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

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

Diff
@@ -113,8 +113,9 @@ A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ :
 is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `f (c • x) = (σ c) • f x`. -/
 class SemilinearMapClass (F : Type*) {R S : outParam (Type*)} [Semiring R] [Semiring S]
-  (σ : outParam (R →+* S)) (M M₂ : outParam (Type*)) [AddCommMonoid M] [AddCommMonoid M₂]
-  [Module R M] [Module S M₂] extends AddHomClass F M M₂ where
+  (σ : outParam (R →+* S)) (M M₂ : outParam Type*) [AddCommMonoid M] [AddCommMonoid M₂]
+  [Module R M] [Module S M₂] [FunLike F M M₂]
+  extends AddHomClass F M M₂ : Prop where
   /-- A semilinear map preserves scalar multiplication up to some ring homomorphism `σ`.
   See also `_root_.map_smul` for the case where `σ` is the identity. -/
   map_smulₛₗ : ∀ (f : F) (r : R) (x : M), f (r • x) = σ r • f x
@@ -128,14 +129,16 @@ end
 
 export SemilinearMapClass (map_smulₛₗ)
 
-attribute [simp] map_smulₛₗ
+-- `map_smulₛₗ` should be `@[simp]` but doesn't fire due to `lean4#3701`.
+-- attribute [simp] map_smulₛₗ
 
 /-- `LinearMapClass F R M M₂` asserts `F` is a type of bundled `R`-linear maps `M → M₂`.
 
 This is an abbreviation for `SemilinearMapClass F (RingHom.id R) M M₂`.
 -/
-abbrev LinearMapClass (F : Type*) (R M M₂ : outParam (Type*)) [Semiring R] [AddCommMonoid M]
-    [AddCommMonoid M₂] [Module R M] [Module R M₂] :=
+abbrev LinearMapClass (F : Type*) (R : outParam (Type*)) (M M₂ : Type*)
+    [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
+    [FunLike F M M₂] :=
   SemilinearMapClass F (RingHom.id R) M M₂
 #align linear_map_class LinearMapClass
 
@@ -148,7 +151,7 @@ variable [Module R M] [Module R M₂] [Module S M₃]
 variable {σ : R →+* S}
 
 -- Porting note: the `dangerousInstance` linter has become smarter about `outParam`s
-instance (priority := 100) addMonoidHomClass [SemilinearMapClass F σ M M₃] :
+instance (priority := 100) instAddMonoidHomClass [FunLike F M M₃] [SemilinearMapClass F σ M M₃] :
     AddMonoidHomClass F M M₃ :=
   { SemilinearMapClass.toAddHomClass with
     map_zero := fun f ↦
@@ -156,15 +159,15 @@ instance (priority := 100) addMonoidHomClass [SemilinearMapClass F σ M M₃] :
         rw [← zero_smul R (0 : M), map_smulₛₗ]
         simp }
 
-instance (priority := 100) distribMulActionHomClass [LinearMapClass F R M M₂] :
+instance (priority := 100) distribMulActionHomClass [FunLike F M M₂] [LinearMapClass F R M M₂] :
     DistribMulActionHomClass F R M M₂ :=
-  { SemilinearMapClass.addMonoidHomClass F with
+  { SemilinearMapClass.instAddMonoidHomClass F with
     map_smul := fun f c x ↦ by rw [map_smulₛₗ, RingHom.id_apply] }
 
-variable {F} (f : F) [i : SemilinearMapClass F σ M M₃]
+variable {F} (f : F) [FunLike F M M₃] [SemilinearMapClass F σ M M₃]
 
 theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
-    c • f x = f (σ' c • x) := by simp
+    c • f x = f (σ' c • x) := by simp [map_smulₛₗ _]
 #align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_inv
 
 /-- Reinterpret an element of a type of semilinear maps as a semilinear map. -/
@@ -177,7 +180,7 @@ end SemilinearMapClass
 
 namespace LinearMapClass
 variable {F : Type*} [Semiring R] [AddCommMonoid M₁] [AddCommMonoid M₂] [Module R M₁] [Module R M₂]
-  (f : F) [LinearMapClass F R M₁ M₂]
+  (f : F) [FunLike F M₁ M₂] [LinearMapClass F R M₁ M₂]
 
 /-- Reinterpret an element of a type of linear maps as a linear map. -/
 abbrev linearMap : M₁ →ₗ[R] M₂ := SemilinearMapClass.semilinearMap f
@@ -197,7 +200,7 @@ variable [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N₃]
 variable [Module R M] [Module R M₂] [Module S M₃]
 variable {σ : R →+* S}
 
-instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
+instance instFunLike : FunLike (M →ₛₗ[σ] M₃) M M₃ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -205,6 +208,8 @@ instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M
     congr
     apply DFunLike.coe_injective'
     exact h
+
+instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
   map_add f := f.map_add'
   map_smulₛₗ := LinearMap.map_smul'
 #align linear_map.semilinear_map_class LinearMap.semilinearMapClass
@@ -212,10 +217,6 @@ instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M
 -- Porting note: we don't port specialized `CoeFun` instances if there is `DFunLike` instead
 #noalign LinearMap.has_coe_to_fun
 
--- Porting note: adding this instance prevents a timeout in `ext_ring_op`
-instance instFunLike {σ : R →+* S} : FunLike (M →ₛₗ[σ] M₃) M M₃ :=
-  { AddHomClass.toDFunLike with }
-
 /-- The `DistribMulActionHom` underlying a `LinearMap`. -/
 def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂ :=
   { f with map_zero' := show f 0 = 0 from map_zero f }
@@ -344,6 +345,8 @@ protected theorem map_zero : f 0 = 0 :=
 -- Porting note: `simp` wasn't picking up `map_smulₛₗ` for `LinearMap`s without specifying
 -- `map_smulₛₗ f`, so we marked this as `@[simp]` in Mathlib3.
 -- For Mathlib4, let's try without the `@[simp]` attribute and hope it won't need to be re-enabled.
+-- This has to be re-tagged as `@[simp]` in #8386 (see also leanprover/lean4#3107).
+@[simp]
 protected theorem map_smulₛₗ (c : R) (x : M) : f (c • x) = σ c • f x :=
   map_smulₛₗ f c x
 #align linear_map.map_smulₛₗ LinearMap.map_smulₛₗ
@@ -514,7 +517,8 @@ variable (f : M₂ →ₛₗ[σ₂₃] M₃) (g : M₁ →ₛₗ[σ₁₂] M₂)
 def comp : M₁ →ₛₗ[σ₁₃] M₃ where
   toFun := f ∘ g
   map_add' := by simp only [map_add, forall_const, Function.comp_apply]
-  map_smul' r x := by simp only [Function.comp_apply, map_smulₛₗ, RingHomCompTriple.comp_apply]
+  -- Note that #8386 changed `map_smulₛₗ` to `map_smulₛₗ _`
+  map_smul' r x := by simp only [Function.comp_apply, map_smulₛₗ _, RingHomCompTriple.comp_apply]
 #align linear_map.comp LinearMap.comp
 
 /-- `∘ₗ` is notation for composition of two linear (not semilinear!) maps into a linear map.
feat: add lake exe shake to CI (#9751)

This checks files for unused imports. The output here is piped through gh-problem-matcher-wrap so that it will show up as annotations.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -7,7 +7,6 @@ Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne
 import Mathlib.Algebra.Module.Pi
 import Mathlib.Algebra.Ring.CompTypeclasses
 import Mathlib.Algebra.Star.Basic
-import Mathlib.Data.Set.Pointwise.SMul
 import Mathlib.GroupTheory.GroupAction.Hom
 
 #align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
chore(Algebra/Module/LinearMap): split into 3 files (#10183)
Diff
@@ -31,8 +31,6 @@ We then provide `LinearMap` with the following instances:
   corresponding to addition in the codomain
 * `LinearMap.distribMulAction` and `LinearMap.module`: the elementwise scalar action structures
   corresponding to applying the action in the codomain.
-* `Module.End.semiring` and `Module.End.ring`: the (semi)ring of endomorphisms formed by taking the
-  additive structure above with composition as multiplication.
 
 ## Implementation notes
 
@@ -196,11 +194,8 @@ variable [Semiring R] [Semiring S]
 section
 
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
-
 variable [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N₃]
-
 variable [Module R M] [Module R M₂] [Module S M₃]
-
 variable {σ : R →+* S}
 
 instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
@@ -304,13 +299,9 @@ end
 section
 
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
-
 variable [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N₃]
-
 variable [Module R M] [Module R M₂] [Module S M₃]
-
 variable (σ : R →+* S)
-
 variable (fₗ gₗ : M →ₗ[R] M₂) (f g : M →ₛₗ[σ] M₃)
 
 theorem isLinear : IsLinearMap R fₗ :=
@@ -371,49 +362,6 @@ theorem map_eq_zero_iff (h : Function.Injective f) {x : M} : f x = 0 ↔ x = 0 :
   _root_.map_eq_zero_iff f h
 #align linear_map.map_eq_zero_iff LinearMap.map_eq_zero_iff
 
-section Pointwise
-
-open Pointwise
-
-variable (M M₃ σ) {F : Type*} (h : F)
-
-@[simp]
-theorem _root_.image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
-    h '' (c • s) = σ c • h '' s := by
-  apply Set.Subset.antisymm
-  · rintro x ⟨y, ⟨z, zs, rfl⟩, rfl⟩
-    exact ⟨h z, Set.mem_image_of_mem _ zs, (map_smulₛₗ _ _ _).symm⟩
-  · rintro x ⟨y, ⟨z, hz, rfl⟩, rfl⟩
-    exact (Set.mem_image _ _ _).2 ⟨c • z, Set.smul_mem_smul_set hz, map_smulₛₗ _ _ _⟩
-#align image_smul_setₛₗ image_smul_setₛₗ
-
-theorem _root_.preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R} (hc : IsUnit c)
-    (s : Set M₃) :
-    h ⁻¹' (σ c • s) = c • h ⁻¹' s := by
-  apply Set.Subset.antisymm
-  · rintro x ⟨y, ys, hy⟩
-    refine' ⟨(hc.unit.inv : R) • x, _, _⟩
-    · simp only [← hy, smul_smul, Set.mem_preimage, Units.inv_eq_val_inv, map_smulₛₗ h, ← map_mul,
-        IsUnit.val_inv_mul, one_smul, map_one, ys]
-    · simp only [smul_smul, IsUnit.mul_val_inv, one_smul, Units.inv_eq_val_inv]
-  · rintro x ⟨y, hy, rfl⟩
-    refine' ⟨h y, hy, by simp only [RingHom.id_apply, map_smulₛₗ h]⟩
-#align preimage_smul_setₛₗ preimage_smul_setₛₗ
-
-variable (R M₂)
-
-theorem _root_.image_smul_set [LinearMapClass F R M M₂] (c : R) (s : Set M) :
-    h '' (c • s) = c • h '' s :=
-  image_smul_setₛₗ _ _ _ h c s
-#align image_smul_set image_smul_set
-
-theorem _root_.preimage_smul_set [LinearMapClass F R M M₂] {c : R} (hc : IsUnit c) (s : Set M₂) :
-    h ⁻¹' (c • s) = c • h ⁻¹' s :=
-  preimage_smul_setₛₗ _ _ _ h hc s
-#align preimage_smul_set preimage_smul_set
-
-end Pointwise
-
 variable (M M₂)
 
 /-- A typeclass for `SMul` structures which can be moved through a `LinearMap`.
@@ -649,9 +597,7 @@ end AddCommMonoid
 section AddCommGroup
 
 variable [Semiring R] [Semiring S] [AddCommGroup M] [AddCommGroup M₂]
-
 variable {module_M : Module R M} {module_M₂ : Module S M₂} {σ : R →+* S}
-
 variable (f : M →ₛₗ[σ] M₂)
 
 protected theorem map_neg (x : M) : f (-x) = -f x :=
@@ -788,12 +734,6 @@ end AddCommGroup
 
 end IsLinearMap
 
-/-- Linear endomorphisms of a module, with associated ring structure
-`Module.End.semiring` and algebra structure `Module.End.algebra`. -/
-abbrev Module.End (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] :=
-  M →ₗ[R] M
-#align module.End Module.End
-
 /-- Reinterpret an additive homomorphism as an `ℕ`-linear map. -/
 def AddMonoidHom.toNatLinearMap [AddCommMonoid M] [AddCommMonoid M₂] (f : M →+ M₂) : M →ₗ[ℕ] M₂
     where
@@ -892,7 +832,6 @@ end SMul
 
 /-! ### Arithmetic on the codomain -/
 
-
 section Arithmetic
 
 variable [Semiring R₁] [Semiring R₂] [Semiring R₃]
@@ -1057,442 +996,4 @@ end Module
 
 end Actions
 
-/-!
-### Monoid structure of endomorphisms
--/
-
-
-section Endomorphisms
-
-variable [Semiring R] [AddCommMonoid M] [AddCommGroup N₁] [Module R M] [Module R N₁]
-
-instance : One (Module.End R M) :=
-  ⟨LinearMap.id⟩
-
-instance : Mul (Module.End R M) :=
-  ⟨LinearMap.comp⟩
-
-theorem one_eq_id : (1 : Module.End R M) = id :=
-  rfl
-#align linear_map.one_eq_id LinearMap.one_eq_id
-
-theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
-  rfl
-#align linear_map.mul_eq_comp LinearMap.mul_eq_comp
-
-@[simp]
-theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
-  rfl
-#align linear_map.one_apply LinearMap.one_apply
-
-@[simp]
-theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
-  rfl
-#align linear_map.mul_apply LinearMap.mul_apply
-
-theorem coe_one : ⇑(1 : Module.End R M) = _root_.id :=
-  rfl
-#align linear_map.coe_one LinearMap.coe_one
-
-theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
-  rfl
-#align linear_map.coe_mul LinearMap.coe_mul
-
-instance _root_.Module.End.monoid : Monoid (Module.End R M) where
-  mul := (· * ·)
-  one := (1 : M →ₗ[R] M)
-  mul_assoc f g h := LinearMap.ext fun x ↦ rfl
-  mul_one := comp_id
-  one_mul := id_comp
-#align module.End.monoid Module.End.monoid
-
-instance _root_.Module.End.semiring : Semiring (Module.End R M) :=
-  { AddMonoidWithOne.unary, Module.End.monoid, LinearMap.addCommMonoid with
-    mul_zero := comp_zero
-    zero_mul := zero_comp
-    left_distrib := fun _ _ _ ↦ comp_add _ _ _
-    right_distrib := fun _ _ _ ↦ add_comp _ _ _
-    natCast := fun n ↦ n • (1 : M →ₗ[R] M)
-    natCast_zero := zero_smul ℕ (1 : M →ₗ[R] M)
-    natCast_succ := fun n ↦ (AddMonoid.nsmul_succ n (1 : M →ₗ[R] M)).trans (add_comm _ _) }
-#align module.End.semiring Module.End.semiring
-
-/-- See also `Module.End.natCast_def`. -/
-@[simp]
-theorem _root_.Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R M) m = n • m :=
-  rfl
-#align module.End.nat_cast_apply Module.End.natCast_apply
-
-@[simp]
-theorem _root_.Module.End.ofNat_apply (n : ℕ) [n.AtLeastTwo] (m : M) :
-    (no_index (OfNat.ofNat n) : Module.End R M) m = OfNat.ofNat n • m :=
-  rfl
-
-instance _root_.Module.End.ring : Ring (Module.End R N₁) :=
-  { Module.End.semiring, LinearMap.addCommGroup with
-    intCast := fun z ↦ z • (1 : N₁ →ₗ[R] N₁)
-    intCast_ofNat := ofNat_zsmul _
-    intCast_negSucc := negSucc_zsmul _ }
-#align module.End.ring Module.End.ring
-
-/-- See also `Module.End.intCast_def`. -/
-@[simp]
-theorem _root_.Module.End.intCast_apply (z : ℤ) (m : N₁) : (z : Module.End R N₁) m = z • m :=
-  rfl
-#align module.End.int_cast_apply Module.End.intCast_apply
-
-section
-
-variable [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
-
-instance _root_.Module.End.isScalarTower :
-    IsScalarTower S (Module.End R M) (Module.End R M) :=
-  ⟨smul_comp⟩
-#align module.End.is_scalar_tower Module.End.isScalarTower
-
-instance _root_.Module.End.smulCommClass [SMul S R] [IsScalarTower S R M] :
-    SMulCommClass S (Module.End R M) (Module.End R M) :=
-  ⟨fun s _ _ ↦ (comp_smul _ s _).symm⟩
-#align module.End.smul_comm_class Module.End.smulCommClass
-
-instance _root_.Module.End.smulCommClass' [SMul S R] [IsScalarTower S R M] :
-    SMulCommClass (Module.End R M) S (Module.End R M) :=
-  SMulCommClass.symm _ _ _
-#align module.End.smul_comm_class' Module.End.smulCommClass'
-
-theorem _root_.Module.End_isUnit_apply_inv_apply_of_isUnit
-    {f : Module.End R M} (h : IsUnit f) (x : M) :
-    f (h.unit.inv x) = x :=
-  show (f * h.unit.inv) x = x by simp
-#align module.End_is_unit_apply_inv_apply_of_is_unit Module.End_isUnit_apply_inv_apply_of_isUnit
-
-theorem _root_.Module.End_isUnit_inv_apply_apply_of_isUnit
-    {f : Module.End R M} (h : IsUnit f) (x : M) :
-    h.unit.inv (f x) = x :=
-  (by simp : (h.unit.inv * f) x = x)
-#align module.End_is_unit_inv_apply_apply_of_is_unit Module.End_isUnit_inv_apply_apply_of_isUnit
-
-theorem coe_pow (f : M →ₗ[R] M) (n : ℕ) : ⇑(f ^ n) = f^[n] := hom_coe_pow _ rfl (fun _ _ ↦ rfl) _ _
-#align linear_map.coe_pow LinearMap.coe_pow
-
-theorem pow_apply (f : M →ₗ[R] M) (n : ℕ) (m : M) : (f ^ n) m = f^[n] m := congr_fun (coe_pow f n) m
-#align linear_map.pow_apply LinearMap.pow_apply
-
-theorem pow_map_zero_of_le {f : Module.End R M} {m : M} {k l : ℕ} (hk : k ≤ l)
-    (hm : (f ^ k) m = 0) : (f ^ l) m = 0 := by
-  rw [← tsub_add_cancel_of_le hk, pow_add, mul_apply, hm, map_zero]
-#align linear_map.pow_map_zero_of_le LinearMap.pow_map_zero_of_le
-
-theorem commute_pow_left_of_commute
-    [Semiring R₂] [AddCommMonoid M₂] [Module R₂ M₂] {σ₁₂ : R →+* R₂}
-    {f : M →ₛₗ[σ₁₂] M₂} {g : Module.End R M} {g₂ : Module.End R₂ M₂}
-    (h : g₂.comp f = f.comp g) (k : ℕ) : (g₂ ^ k).comp f = f.comp (g ^ k) := by
-  induction' k with k ih
-  · simp only [Nat.zero_eq, pow_zero, one_eq_id, id_comp, comp_id]
-  · rw [pow_succ, pow_succ, LinearMap.mul_eq_comp, LinearMap.comp_assoc, ih, ← LinearMap.comp_assoc,
-      h, LinearMap.comp_assoc, LinearMap.mul_eq_comp]
-#align linear_map.commute_pow_left_of_commute LinearMap.commute_pow_left_of_commute
-
-@[simp]
-theorem id_pow (n : ℕ) : (id : M →ₗ[R] M) ^ n = id :=
-  one_pow n
-#align linear_map.id_pow LinearMap.id_pow
-
-variable {f' : M →ₗ[R] M}
-
-theorem iterate_succ (n : ℕ) : f' ^ (n + 1) = comp (f' ^ n) f' := by rw [pow_succ', mul_eq_comp]
-#align linear_map.iterate_succ LinearMap.iterate_succ
-
-theorem iterate_surjective (h : Surjective f') : ∀ n : ℕ, Surjective (f' ^ n)
-  | 0 => surjective_id
-  | n + 1 => by
-    rw [iterate_succ]
-    exact (iterate_surjective h n).comp h
-#align linear_map.iterate_surjective LinearMap.iterate_surjective
-
-theorem iterate_injective (h : Injective f') : ∀ n : ℕ, Injective (f' ^ n)
-  | 0 => injective_id
-  | n + 1 => by
-    rw [iterate_succ]
-    exact (iterate_injective h n).comp h
-#align linear_map.iterate_injective LinearMap.iterate_injective
-
-theorem iterate_bijective (h : Bijective f') : ∀ n : ℕ, Bijective (f' ^ n)
-  | 0 => bijective_id
-  | n + 1 => by
-    rw [iterate_succ]
-    exact (iterate_bijective h n).comp h
-#align linear_map.iterate_bijective LinearMap.iterate_bijective
-
-theorem injective_of_iterate_injective {n : ℕ} (hn : n ≠ 0) (h : Injective (f' ^ n)) :
-    Injective f' := by
-  rw [← Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr hn), iterate_succ, coe_comp] at h
-  exact h.of_comp
-#align linear_map.injective_of_iterate_injective LinearMap.injective_of_iterate_injective
-
-theorem surjective_of_iterate_surjective {n : ℕ} (hn : n ≠ 0) (h : Surjective (f' ^ n)) :
-    Surjective f' := by
-  rw [← Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr hn), pow_succ, coe_mul] at h
-  exact Surjective.of_comp h
-#align linear_map.surjective_of_iterate_surjective LinearMap.surjective_of_iterate_surjective
-
-end
-
-/-! ### Action by a module endomorphism. -/
-
-
-/-- The tautological action by `Module.End R M` (aka `M →ₗ[R] M`) on `M`.
-
-This generalizes `Function.End.applyMulAction`. -/
-instance applyModule : Module (Module.End R M) M where
-  smul := (· <| ·)
-  smul_zero := LinearMap.map_zero
-  smul_add := LinearMap.map_add
-  add_smul := LinearMap.add_apply
-  zero_smul := (LinearMap.zero_apply : ∀ m, (0 : M →ₗ[R] M) m = 0)
-  one_smul _ := rfl
-  mul_smul _ _ _ := rfl
-#align linear_map.apply_module LinearMap.applyModule
-
-@[simp]
-protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
-  rfl
-#align linear_map.smul_def LinearMap.smul_def
-
-/-- `LinearMap.applyModule` is faithful. -/
-instance apply_faithfulSMul : FaithfulSMul (Module.End R M) M :=
-  ⟨LinearMap.ext⟩
-#align linear_map.apply_has_faithful_smul LinearMap.apply_faithfulSMul
-
-instance apply_smulCommClass : SMulCommClass R (Module.End R M) M where
-  smul_comm r e m := (e.map_smul r m).symm
-#align linear_map.apply_smul_comm_class LinearMap.apply_smulCommClass
-
-instance apply_smulCommClass' : SMulCommClass (Module.End R M) R M where
-  smul_comm := LinearMap.map_smul
-#align linear_map.apply_smul_comm_class' LinearMap.apply_smulCommClass'
-
-instance apply_isScalarTower {R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] :
-    IsScalarTower R (Module.End R M) M :=
-  ⟨fun _ _ _ ↦ rfl⟩
-#align linear_map.apply_is_scalar_tower LinearMap.apply_isScalarTower
-
-end Endomorphisms
-
-end LinearMap
-
-/-! ### Actions as module endomorphisms -/
-
-
-namespace DistribMulAction
-
-variable (R M) [Semiring R] [AddCommMonoid M] [Module R M]
-
-variable [Monoid S] [DistribMulAction S M] [SMulCommClass S R M]
-
-/-- Each element of the monoid defines a linear map.
-
-This is a stronger version of `DistribMulAction.toAddMonoidHom`. -/
-@[simps]
-def toLinearMap (s : S) : M →ₗ[R] M where
-  toFun := HSMul.hSMul s
-  map_add' := smul_add s
-  map_smul' _ _ := smul_comm _ _ _
-#align distrib_mul_action.to_linear_map DistribMulAction.toLinearMap
-#align distrib_mul_action.to_linear_map_apply DistribMulAction.toLinearMap_apply
-
-/-- Each element of the monoid defines a module endomorphism.
-
-This is a stronger version of `DistribMulAction.toAddMonoidEnd`. -/
-@[simps]
-def toModuleEnd : S →* Module.End R M where
-  toFun := toLinearMap R M
-  map_one' := LinearMap.ext <| one_smul _
-  map_mul' _ _ := LinearMap.ext <| mul_smul _ _
-#align distrib_mul_action.to_module_End DistribMulAction.toModuleEnd
-#align distrib_mul_action.to_module_End_apply DistribMulAction.toModuleEnd_apply
-
-end DistribMulAction
-
-namespace Module
-
-variable (R M) [Semiring R] [AddCommMonoid M] [Module R M]
-
-variable [Semiring S] [Module S M] [SMulCommClass S R M]
-
-/-- Each element of the semiring defines a module endomorphism.
-
-This is a stronger version of `DistribMulAction.toModuleEnd`. -/
-@[simps]
-def toModuleEnd : S →+* Module.End R M :=
-  { DistribMulAction.toModuleEnd R M with
-    toFun := DistribMulAction.toLinearMap R M
-    map_zero' := LinearMap.ext <| zero_smul S
-    map_add' := fun _ _ ↦ LinearMap.ext <| add_smul _ _ }
-#align module.to_module_End Module.toModuleEnd
-#align module.to_module_End_apply Module.toModuleEnd_apply
-
-/-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `Module.End R R` induced by the right
-multiplication. -/
-@[simps]
-def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.End R R :=
-  { Module.toModuleEnd R R with
-    toFun := DistribMulAction.toLinearMap R R
-    invFun := fun f ↦ MulOpposite.op (f 1)
-    left_inv := mul_one
-    right_inv := fun _ ↦ LinearMap.ext_ring <| one_mul _ }
-#align module.module_End_self Module.moduleEndSelf
-#align module.module_End_self_apply Module.moduleEndSelf_apply
-
-/-- The canonical (semi)ring isomorphism from `R` to `Module.End Rᵐᵒᵖ R` induced by the left
-multiplication. -/
-@[simps]
-def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
-  { Module.toModuleEnd _ _ with
-    toFun := DistribMulAction.toLinearMap _ _
-    invFun := fun f ↦ f 1
-    left_inv := mul_one
-    right_inv := fun _ ↦ LinearMap.ext_ring_op <| mul_one _ }
-#align module.module_End_self_op Module.moduleEndSelfOp
-#align module.module_End_self_op_symm_apply Module.moduleEndSelfOp_symm_apply
-#align module.module_End_self_op_apply Module.moduleEndSelfOp_apply
-
-theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
-    (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
-  rfl
-#align module.End.nat_cast_def Module.End.natCast_def
-
-theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
-    (z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=
-  rfl
-#align module.End.int_cast_def Module.End.intCast_def
-
-end Module
-
-namespace LinearMap
-
-section AddCommMonoid
-
-section SMulRight
-
-variable [Semiring R] [Semiring R₂] [AddCommMonoid M] [AddCommMonoid M₁] [Module R M] [Module R M₁]
-variable [Semiring S] [Module R S] [Module S M] [IsScalarTower R S M]
-
-/-- When `f` is an `R`-linear map taking values in `S`, then `fun ↦ b, f b • x` is an `R`-linear
-map. -/
-def smulRight (f : M₁ →ₗ[R] S) (x : M) : M₁ →ₗ[R] M where
-  toFun b := f b • x
-  map_add' x y := by dsimp only; rw [f.map_add, add_smul]
-  map_smul' b y := by dsimp; rw [map_smul, smul_assoc]
-#align linear_map.smul_right LinearMap.smulRight
-
-@[simp]
-theorem coe_smulRight (f : M₁ →ₗ[R] S) (x : M) : (smulRight f x : M₁ → M) = fun c => f c • x :=
-  rfl
-#align linear_map.coe_smul_right LinearMap.coe_smulRight
-
-theorem smulRight_apply (f : M₁ →ₗ[R] S) (x : M) (c : M₁) : smulRight f x c = f c • x :=
-  rfl
-#align linear_map.smul_right_apply LinearMap.smulRight_apply
-
-@[simp]
-lemma smulRight_zero (f : M₁ →ₗ[R] S) : f.smulRight (0 : M) = 0 := by ext; simp
-
-@[simp]
-lemma zero_smulRight (x : M) : (0 : M₁ →ₗ[R] S).smulRight x = 0 := by ext; simp
-
-@[simp]
-lemma smulRight_apply_eq_zero_iff {f : M₁ →ₗ[R] S} {x : M} [NoZeroSMulDivisors S M] :
-    f.smulRight x = 0 ↔ f = 0 ∨ x = 0 := by
-  rcases eq_or_ne x 0 with rfl | hx; simp
-  refine ⟨fun h ↦ Or.inl ?_, fun h ↦ by simp [h.resolve_right hx]⟩
-  ext v
-  replace h : f v • x = 0 := by simpa only [LinearMap.zero_apply] using LinearMap.congr_fun h v
-  rw [smul_eq_zero] at h
-  tauto
-
-end SMulRight
-
-end AddCommMonoid
-
-section Module
-
-variable [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid M₂]
-variable [Module R M] [Module R M₂] [Module S M₂] [SMulCommClass R S M₂]
-
-variable (S)
-
-/-- Applying a linear map at `v : M`, seen as `S`-linear map from `M →ₗ[R] M₂` to `M₂`.
-
- See `LinearMap.applyₗ` for a version where `S = R`. -/
-@[simps]
-def applyₗ' : M →+ (M →ₗ[R] M₂) →ₗ[S] M₂ where
-  toFun v :=
-    { toFun := fun f => f v
-      map_add' := fun f g => f.add_apply g v
-      map_smul' := fun x f => f.smul_apply x v }
-  map_zero' := LinearMap.ext fun f => f.map_zero
-  map_add' _ _ := LinearMap.ext fun f => f.map_add _ _
-#align linear_map.applyₗ' LinearMap.applyₗ'
-
-end Module
-
-section CommSemiring
-
-variable [CommSemiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃]
-variable [Module R M] [Module R M₂] [Module R M₃]
-variable (f g : M →ₗ[R] M₂)
-
-/-- Composition by `f : M₂ → M₃` is a linear map from the space of linear maps `M → M₂`
-to the space of linear maps `M → M₃`. -/
-def compRight (f : M₂ →ₗ[R] M₃) : (M →ₗ[R] M₂) →ₗ[R] M →ₗ[R] M₃ where
-  toFun := f.comp
-  map_add' _ _ := LinearMap.ext fun _ => map_add f _ _
-  map_smul' _ _ := LinearMap.ext fun _ => map_smul f _ _
-#align linear_map.comp_right LinearMap.compRight
-
-@[simp]
-theorem compRight_apply (f : M₂ →ₗ[R] M₃) (g : M →ₗ[R] M₂) : compRight f g = f.comp g :=
-  rfl
-#align linear_map.comp_right_apply LinearMap.compRight_apply
-
-/-- Applying a linear map at `v : M`, seen as a linear map from `M →ₗ[R] M₂` to `M₂`.
-See also `LinearMap.applyₗ'` for a version that works with two different semirings.
-
-This is the `LinearMap` version of `toAddMonoidHom.eval`. -/
-@[simps]
-def applyₗ : M →ₗ[R] (M →ₗ[R] M₂) →ₗ[R] M₂ :=
-  { applyₗ' R with
-    toFun := fun v => { applyₗ' R v with toFun := fun f => f v }
-    map_smul' := fun _ _ => LinearMap.ext fun f => map_smul f _ _ }
-#align linear_map.applyₗ LinearMap.applyₗ
-
-/--
-The family of linear maps `M₂ → M` parameterised by `f ∈ M₂ → R`, `x ∈ M`, is linear in `f`, `x`.
--/
-def smulRightₗ : (M₂ →ₗ[R] R) →ₗ[R] M →ₗ[R] M₂ →ₗ[R] M where
-  toFun f :=
-    { toFun := LinearMap.smulRight f
-      map_add' := fun m m' => by
-        ext
-        apply smul_add
-      map_smul' := fun c m => by
-        ext
-        apply smul_comm }
-  map_add' f f' := by
-    ext
-    apply add_smul
-  map_smul' c f := by
-    ext
-    apply mul_smul
-#align linear_map.smul_rightₗ LinearMap.smulRightₗ
-
-@[simp]
-theorem smulRightₗ_apply (f : M₂ →ₗ[R] R) (x : M) (c : M₂) :
-    (smulRightₗ : (M₂ →ₗ[R] R) →ₗ[R] M →ₗ[R] M₂ →ₗ[R] M) f x c = f c • x :=
-  rfl
-#align linear_map.smul_rightₗ_apply LinearMap.smulRightₗ_apply
-
-end CommSemiring
-
 end LinearMap
fix doc for LinearMap.compRight (#9997)

minor typo here. An (f : M2 -> M3) induces a linear map from (M->M2) to (M->M3). Not to (M2 -> M3).

Co-authored-by: Alex Meiburg <timeroot.alex@gmail.com>

Diff
@@ -1444,7 +1444,7 @@ variable [Module R M] [Module R M₂] [Module R M₃]
 variable (f g : M →ₗ[R] M₂)
 
 /-- Composition by `f : M₂ → M₃` is a linear map from the space of linear maps `M → M₂`
-to the space of linear maps `M₂ → M₃`. -/
+to the space of linear maps `M → M₃`. -/
 def compRight (f : M₂ →ₗ[R] M₃) : (M →ₗ[R] M₂) →ₗ[R] M →ₗ[R] M₃ where
   toFun := f.comp
   map_add' _ _ := LinearMap.ext fun _ => map_add f _ _
refactor(*): abbreviation for non-dependent FunLike (#9833)

This follows up from #9785, which renamed FunLike to DFunLike, by introducing a new abbreviation FunLike F α β := DFunLike F α (fun _ => β), to make the non-dependent use of FunLike easier.

I searched for the pattern DFunLike.*fun and DFunLike.*λ in all files to replace expressions of the form DFunLike F α (fun _ => β) with FunLike F α β. I did this everywhere except for extends clauses for two reasons: it would conflict with #8386, and more importantly extends must directly refer to a structure with no unfolding of defs or abbrevs.

Diff
@@ -219,7 +219,7 @@ instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M
 #noalign LinearMap.has_coe_to_fun
 
 -- Porting note: adding this instance prevents a timeout in `ext_ring_op`
-instance instDFunLike {σ : R →+* S} : DFunLike (M →ₛₗ[σ] M₃) M (λ _ ↦ M₃) :=
+instance instFunLike {σ : R →+* S} : FunLike (M →ₛₗ[σ] M₃) M M₃ :=
   { AddHomClass.toDFunLike with }
 
 /-- The `DistribMulActionHom` underlying a `LinearMap`. -/
chore(*): rename FunLike to DFunLike (#9785)

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

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

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

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

Diff
@@ -209,18 +209,18 @@ instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M
     cases f
     cases g
     congr
-    apply FunLike.coe_injective'
+    apply DFunLike.coe_injective'
     exact h
   map_add f := f.map_add'
   map_smulₛₗ := LinearMap.map_smul'
 #align linear_map.semilinear_map_class LinearMap.semilinearMapClass
 
--- Porting note: we don't port specialized `CoeFun` instances if there is `FunLike` instead
+-- Porting note: we don't port specialized `CoeFun` instances if there is `DFunLike` instead
 #noalign LinearMap.has_coe_to_fun
 
 -- Porting note: adding this instance prevents a timeout in `ext_ring_op`
-instance instFunLike {σ : R →+* S} : FunLike (M →ₛₗ[σ] M₃) M (λ _ ↦ M₃) :=
-  { AddHomClass.toFunLike with }
+instance instDFunLike {σ : R →+* S} : DFunLike (M →ₛₗ[σ] M₃) M (λ _ ↦ M₃) :=
+  { AddHomClass.toDFunLike with }
 
 /-- The `DistribMulActionHom` underlying a `LinearMap`. -/
 def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂ :=
@@ -236,7 +236,7 @@ theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
 
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
-  FunLike.ext f g h
+  DFunLike.ext f g h
 #align linear_map.ext LinearMap.ext
 
 /-- Copy of a `LinearMap` with a new `toFun` equal to the old one. Useful to fix definitional
@@ -253,7 +253,7 @@ theorem coe_copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) :
 #align linear_map.coe_copy LinearMap.coe_copy
 
 theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f.copy f' h = f :=
-  FunLike.ext' h
+  DFunLike.ext' h
 #align linear_map.copy_eq LinearMap.copy_eq
 
 initialize_simps_projections LinearMap (toFun → apply)
@@ -319,21 +319,21 @@ theorem isLinear : IsLinearMap R fₗ :=
 
 variable {fₗ gₗ f g σ}
 
-theorem coe_injective : Injective (FunLike.coe : (M →ₛₗ[σ] M₃) → _) :=
-  FunLike.coe_injective
+theorem coe_injective : Injective (DFunLike.coe : (M →ₛₗ[σ] M₃) → _) :=
+  DFunLike.coe_injective
 #align linear_map.coe_injective LinearMap.coe_injective
 
 protected theorem congr_arg {x x' : M} : x = x' → f x = f x' :=
-  FunLike.congr_arg f
+  DFunLike.congr_arg f
 #align linear_map.congr_arg LinearMap.congr_arg
 
 /-- If two linear maps are equal, they are equal at each point. -/
 protected theorem congr_fun (h : f = g) (x : M) : f x = g x :=
-  FunLike.congr_fun h x
+  DFunLike.congr_fun h x
 #align linear_map.congr_fun LinearMap.congr_fun
 
 theorem ext_iff : f = g ↔ ∀ x, f x = g x :=
-  FunLike.ext_iff
+  DFunLike.ext_iff
 #align linear_map.ext_iff LinearMap.ext_iff
 
 @[simp]
@@ -519,7 +519,7 @@ end RestrictScalars
 
 theorem toAddMonoidHom_injective :
     Function.Injective (toAddMonoidHom : (M →ₛₗ[σ] M₃) → M →+ M₃) := fun fₗ gₗ h ↦
-  ext <| (FunLike.congr_fun h : ∀ x, fₗ.toAddMonoidHom x = gₗ.toAddMonoidHom x)
+  ext <| (DFunLike.congr_fun h : ∀ x, fₗ.toAddMonoidHom x = gₗ.toAddMonoidHom x)
 #align linear_map.to_add_monoid_hom_injective LinearMap.toAddMonoidHom_injective
 
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
@@ -955,7 +955,7 @@ theorem comp_add (f g : M →ₛₗ[σ₁₂] M₂) (h : M₂ →ₛₗ[σ₂₃
 
 /-- The type of linear maps is an additive monoid. -/
 instance addCommMonoid : AddCommMonoid (M →ₛₗ[σ₁₂] M₂) :=
-  FunLike.coe_injective.addCommMonoid _ rfl (fun _ _ ↦ rfl) fun _ _ ↦ rfl
+  DFunLike.coe_injective.addCommMonoid _ rfl (fun _ _ ↦ rfl) fun _ _ ↦ rfl
 
 /-- The negation of a linear map is linear. -/
 instance : Neg (M →ₛₗ[σ₁₂] N₂) :=
@@ -1003,7 +1003,7 @@ theorem comp_sub (f g : M →ₛₗ[σ₁₂] N₂) (h : N₂ →ₛₗ[σ₂₃
 
 /-- The type of linear maps is an additive group. -/
 instance addCommGroup : AddCommGroup (M →ₛₗ[σ₁₂] N₂) :=
-  FunLike.coe_injective.addCommGroup _ rfl (fun _ _ ↦ rfl) (fun _ ↦ rfl) (fun _ _ ↦ rfl)
+  DFunLike.coe_injective.addCommGroup _ rfl (fun _ _ ↦ rfl) (fun _ ↦ rfl) (fun _ _ ↦ rfl)
     (fun _ _ ↦ rfl) fun _ _ ↦ rfl
 
 end Arithmetic
feat(Algebra): generalize Basis.smul (#9382)

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

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

Diff
@@ -429,19 +429,39 @@ class CompatibleSMul (R S : Type*) [Semiring S] [SMul R M] [Module S M] [SMul R
 
 variable {M M₂}
 
-instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type*} [Semiring S] [SMul R S]
-    [SMul R M] [Module S M] [IsScalarTower R S M] [SMul R M₂] [Module S M₂] [IsScalarTower R S M₂] :
+section
+
+variable {R S : Type*} [Semiring S] [SMul R M] [Module S M] [SMul R M₂] [Module S M₂]
+
+instance (priority := 100) IsScalarTower.compatibleSMul [SMul R S]
+    [IsScalarTower R S M] [IsScalarTower R S M₂] :
     CompatibleSMul M M₂ R S :=
   ⟨fun fₗ c x ↦ by rw [← smul_one_smul S c x, ← smul_one_smul S c (fₗ x), map_smul]⟩
 #align linear_map.is_scalar_tower.compatible_smul LinearMap.IsScalarTower.compatibleSMul
 
+instance IsScalarTower.compatibleSMul' [SMul R S] [IsScalarTower R S M] :
+    CompatibleSMul S M R S where
+  __ := IsScalarTower.smulHomClass R S M (S →ₗ[S] M)
+
 @[simp]
-theorem map_smul_of_tower {R S : Type*} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
-    [Module S M₂] [CompatibleSMul M M₂ R S] (fₗ : M →ₗ[S] M₂) (c : R) (x : M) :
+theorem map_smul_of_tower [CompatibleSMul M M₂ R S] (fₗ : M →ₗ[S] M₂) (c : R) (x : M) :
     fₗ (c • x) = c • fₗ x :=
   CompatibleSMul.map_smul fₗ c x
 #align linear_map.map_smul_of_tower LinearMap.map_smul_of_tower
 
+variable (R R) in
+theorem isScalarTower_of_injective [SMul R S] [CompatibleSMul M M₂ R S] [IsScalarTower R S M₂]
+    (f : M →ₗ[S] M₂) (hf : Function.Injective f) : IsScalarTower R S M where
+  smul_assoc r s _ := hf <| by rw [f.map_smul_of_tower r, map_smul, map_smul, smul_assoc]
+
+end
+
+variable (R) in
+theorem isLinearMap_of_compatibleSMul [Module S M] [Module S M₂] [CompatibleSMul M M₂ R S]
+    (f : M →ₗ[S] M₂) : IsLinearMap R f where
+  map_add := map_add f
+  map_smul := map_smul_of_tower f
+
 /-- convert a linear map to an additive map -/
 def toAddMonoidHom : M →+ M₃ where
   toFun := f
style: use cases x with | ... instead of cases x; case => ... (#9321)

This converts usages of the pattern

cases h
case inl h' => ...
case inr h' => ...

which derive from mathported code, to the "structured cases" syntax:

cases h with
| inl h' => ...
| inr h' => ...

The case where the subgoals are handled with · instead of case is more contentious (and much more numerous) so I left those alone. This pattern also appears with cases', induction, induction', and rcases. Furthermore, there is a similar transformation for by_cases:

by_cases h : cond
case pos => ...
case neg => ...

is replaced by:

if h : cond then
  ...
else
  ...

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -645,10 +645,10 @@ protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
 instance CompatibleSMul.intModule {S : Type*} [Semiring S] [Module S M] [Module S M₂] :
     CompatibleSMul M M₂ ℤ S :=
   ⟨fun fₗ c x ↦ by
-    induction c using Int.induction_on
-    case hz => simp
-    case hp n ih => simp [add_smul, ih]
-    case hn n ih => simp [sub_smul, ih]⟩
+    induction c using Int.induction_on with
+    | hz => simp
+    | hp n ih => simp [add_smul, ih]
+    | hn n ih => simp [sub_smul, ih]⟩
 #align linear_map.compatible_smul.int_module LinearMap.CompatibleSMul.intModule
 
 instance CompatibleSMul.units {R S : Type*} [Monoid R] [MulAction R M] [MulAction R M₂]
feat: supporting lemmas for defining root systems (#8980)

A collection of loosely-related lemmas, split out from other work in the hopes of simplifying review.

Diff
@@ -1375,6 +1375,22 @@ theorem smulRight_apply (f : M₁ →ₗ[R] S) (x : M) (c : M₁) : smulRight f
   rfl
 #align linear_map.smul_right_apply LinearMap.smulRight_apply
 
+@[simp]
+lemma smulRight_zero (f : M₁ →ₗ[R] S) : f.smulRight (0 : M) = 0 := by ext; simp
+
+@[simp]
+lemma zero_smulRight (x : M) : (0 : M₁ →ₗ[R] S).smulRight x = 0 := by ext; simp
+
+@[simp]
+lemma smulRight_apply_eq_zero_iff {f : M₁ →ₗ[R] S} {x : M} [NoZeroSMulDivisors S M] :
+    f.smulRight x = 0 ↔ f = 0 ∨ x = 0 := by
+  rcases eq_or_ne x 0 with rfl | hx; simp
+  refine ⟨fun h ↦ Or.inl ?_, fun h ↦ by simp [h.resolve_right hx]⟩
+  ext v
+  replace h : f v • x = 0 := by simpa only [LinearMap.zero_apply] using LinearMap.congr_fun h v
+  rw [smul_eq_zero] at h
+  tauto
+
 end SMulRight
 
 end AddCommMonoid
feat(Algebra/Module): use notation3 for composition notation (#8847)

This means that comp is printed with this notation in the goal view.

Diff
@@ -550,12 +550,11 @@ def comp : M₁ →ₛₗ[σ₁₃] M₃ where
   map_smul' r x := by simp only [Function.comp_apply, map_smulₛₗ, RingHomCompTriple.comp_apply]
 #align linear_map.comp LinearMap.comp
 
-set_option quotPrecheck false in -- Porting note: error message suggested to do this
 /-- `∘ₗ` is notation for composition of two linear (not semilinear!) maps into a linear map.
 This is useful when Lean is struggling to infer the `RingHomCompTriple` instance. -/
-infixr:80 " ∘ₗ " =>
+notation3:80 (name := compNotation) f:81 " ∘ₗ " g:80 =>
   @LinearMap.comp _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (RingHom.id _) (RingHom.id _) (RingHom.id _)
-    RingHomCompTriple.ids
+    RingHomCompTriple.ids f g
 
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
feat: Mapping extreme points under continuous maps (#8574)

Prove that extreme points are preserved under affine equivalences, and the less trivial statement that a continuous affine map sends extreme points of a compact set to a superset of the extreme points of the image of that set.

Also fix a few name and tweak the API a bit.

Co-authored-by: Yury G. Kudryashov <urkud@urkud.name>

Diff
@@ -62,10 +62,7 @@ open Function
 
 universe u u' v w x y z
 
-variable {R : Type*} {R₁ : Type*} {R₂ : Type*} {R₃ : Type*}
-variable {k : Type*} {S : Type*} {S₃ : Type*} {T : Type*}
-variable {M : Type*} {M₁ : Type*} {M₂ : Type*} {M₃ : Type*}
-variable {N₁ : Type*} {N₂ : Type*} {N₃ : Type*} {ι : Type*}
+variable {R R₁ R₂ R₃ k S S₃ T M M₁ M₂ M₃ N₁ N₂ N₃ ι : Type*}
 
 /-- A map `f` between modules over a semiring is linear if it satisfies the two properties
 `f (x + y) = f x + f y` and `f (c • x) = c • f x`. The predicate `IsLinearMap R f` asserts this
@@ -87,7 +84,7 @@ is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
 `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
 maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. -/
-structure LinearMap {R : Type*} {S : Type*} [Semiring R] [Semiring S] (σ : R →+* S) (M : Type*)
+structure LinearMap {R S : Type*} [Semiring R] [Semiring S] (σ : R →+* S) (M : Type*)
     (M₂ : Type*) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] extends
     AddHom M M₂ where
   /-- A linear map preserves scalar multiplication.
@@ -150,7 +147,6 @@ namespace SemilinearMapClass
 variable (F : Type*)
 variable [Semiring R] [Semiring S]
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
-variable [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N₃]
 variable [Module R M] [Module R M₂] [Module S M₃]
 variable {σ : R →+* S}
 
@@ -174,8 +170,23 @@ theorem map_smul_inv {σ' : S →+* R} [RingHomInvPair σ σ'] (c : S) (x : M) :
     c • f x = f (σ' c • x) := by simp
 #align semilinear_map_class.map_smul_inv SemilinearMapClass.map_smul_inv
 
+/-- Reinterpret an element of a type of semilinear maps as a semilinear map. -/
+abbrev semilinearMap : M →ₛₗ[σ] M₃ where
+  toFun := f
+  map_add' := map_add f
+  map_smul' := map_smulₛₗ f
+
 end SemilinearMapClass
 
+namespace LinearMapClass
+variable {F : Type*} [Semiring R] [AddCommMonoid M₁] [AddCommMonoid M₂] [Module R M₁] [Module R M₂]
+  (f : F) [LinearMapClass F R M₁ M₂]
+
+/-- Reinterpret an element of a type of linear maps as a linear map. -/
+abbrev linearMap : M₁ →ₗ[R] M₂ := SemilinearMapClass.semilinearMap f
+
+end LinearMapClass
+
 namespace LinearMap
 
 section AddCommMonoid
@@ -566,7 +577,7 @@ theorem id_comp : id.comp f = f :=
 #align linear_map.id_comp LinearMap.id_comp
 
 theorem comp_assoc
-    {R₄ : Type*} {M₄ : Type*} [Semiring R₄] [AddCommMonoid M₄] [Module R₄ M₄]
+    {R₄ M₄ : Type*} [Semiring R₄] [AddCommMonoid M₄] [Module R₄ M₄]
     {σ₃₄ : R₃ →+* R₄} {σ₂₄ : R₂ →+* R₄} {σ₁₄ : R₁ →+* R₄}
     [RingHomCompTriple σ₂₃ σ₃₄ σ₂₄] [RingHomCompTriple σ₁₃ σ₃₄ σ₁₄] [RingHomCompTriple σ₁₂ σ₂₄ σ₁₄]
     (f : M₁ →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] M₃) (h : M₃ →ₛₗ[σ₃₄] M₄) :
chore: redistribute some of the results in LinearAlgebra.Basic (#7801)

This reduces the file from ~2600 lines to ~1600 lines.

Co-authored-by: Vierkantor <vierkantor@vierkantor.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com>

Diff
@@ -1338,3 +1338,115 @@ theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
 #align module.End.int_cast_def Module.End.intCast_def
 
 end Module
+
+namespace LinearMap
+
+section AddCommMonoid
+
+section SMulRight
+
+variable [Semiring R] [Semiring R₂] [AddCommMonoid M] [AddCommMonoid M₁] [Module R M] [Module R M₁]
+variable [Semiring S] [Module R S] [Module S M] [IsScalarTower R S M]
+
+/-- When `f` is an `R`-linear map taking values in `S`, then `fun ↦ b, f b • x` is an `R`-linear
+map. -/
+def smulRight (f : M₁ →ₗ[R] S) (x : M) : M₁ →ₗ[R] M where
+  toFun b := f b • x
+  map_add' x y := by dsimp only; rw [f.map_add, add_smul]
+  map_smul' b y := by dsimp; rw [map_smul, smul_assoc]
+#align linear_map.smul_right LinearMap.smulRight
+
+@[simp]
+theorem coe_smulRight (f : M₁ →ₗ[R] S) (x : M) : (smulRight f x : M₁ → M) = fun c => f c • x :=
+  rfl
+#align linear_map.coe_smul_right LinearMap.coe_smulRight
+
+theorem smulRight_apply (f : M₁ →ₗ[R] S) (x : M) (c : M₁) : smulRight f x c = f c • x :=
+  rfl
+#align linear_map.smul_right_apply LinearMap.smulRight_apply
+
+end SMulRight
+
+end AddCommMonoid
+
+section Module
+
+variable [Semiring R] [Semiring S] [AddCommMonoid M] [AddCommMonoid M₂]
+variable [Module R M] [Module R M₂] [Module S M₂] [SMulCommClass R S M₂]
+
+variable (S)
+
+/-- Applying a linear map at `v : M`, seen as `S`-linear map from `M →ₗ[R] M₂` to `M₂`.
+
+ See `LinearMap.applyₗ` for a version where `S = R`. -/
+@[simps]
+def applyₗ' : M →+ (M →ₗ[R] M₂) →ₗ[S] M₂ where
+  toFun v :=
+    { toFun := fun f => f v
+      map_add' := fun f g => f.add_apply g v
+      map_smul' := fun x f => f.smul_apply x v }
+  map_zero' := LinearMap.ext fun f => f.map_zero
+  map_add' _ _ := LinearMap.ext fun f => f.map_add _ _
+#align linear_map.applyₗ' LinearMap.applyₗ'
+
+end Module
+
+section CommSemiring
+
+variable [CommSemiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃]
+variable [Module R M] [Module R M₂] [Module R M₃]
+variable (f g : M →ₗ[R] M₂)
+
+/-- Composition by `f : M₂ → M₃` is a linear map from the space of linear maps `M → M₂`
+to the space of linear maps `M₂ → M₃`. -/
+def compRight (f : M₂ →ₗ[R] M₃) : (M →ₗ[R] M₂) →ₗ[R] M →ₗ[R] M₃ where
+  toFun := f.comp
+  map_add' _ _ := LinearMap.ext fun _ => map_add f _ _
+  map_smul' _ _ := LinearMap.ext fun _ => map_smul f _ _
+#align linear_map.comp_right LinearMap.compRight
+
+@[simp]
+theorem compRight_apply (f : M₂ →ₗ[R] M₃) (g : M →ₗ[R] M₂) : compRight f g = f.comp g :=
+  rfl
+#align linear_map.comp_right_apply LinearMap.compRight_apply
+
+/-- Applying a linear map at `v : M`, seen as a linear map from `M →ₗ[R] M₂` to `M₂`.
+See also `LinearMap.applyₗ'` for a version that works with two different semirings.
+
+This is the `LinearMap` version of `toAddMonoidHom.eval`. -/
+@[simps]
+def applyₗ : M →ₗ[R] (M →ₗ[R] M₂) →ₗ[R] M₂ :=
+  { applyₗ' R with
+    toFun := fun v => { applyₗ' R v with toFun := fun f => f v }
+    map_smul' := fun _ _ => LinearMap.ext fun f => map_smul f _ _ }
+#align linear_map.applyₗ LinearMap.applyₗ
+
+/--
+The family of linear maps `M₂ → M` parameterised by `f ∈ M₂ → R`, `x ∈ M`, is linear in `f`, `x`.
+-/
+def smulRightₗ : (M₂ →ₗ[R] R) →ₗ[R] M →ₗ[R] M₂ →ₗ[R] M where
+  toFun f :=
+    { toFun := LinearMap.smulRight f
+      map_add' := fun m m' => by
+        ext
+        apply smul_add
+      map_smul' := fun c m => by
+        ext
+        apply smul_comm }
+  map_add' f f' := by
+    ext
+    apply add_smul
+  map_smul' c f := by
+    ext
+    apply mul_smul
+#align linear_map.smul_rightₗ LinearMap.smulRightₗ
+
+@[simp]
+theorem smulRightₗ_apply (f : M₂ →ₗ[R] R) (x : M) (c : M₂) :
+    (smulRightₗ : (M₂ →ₗ[R] R) →ₗ[R] M →ₗ[R] M₂ →ₗ[R] M) f x c = f c • x :=
+  rfl
+#align linear_map.smul_rightₗ_apply LinearMap.smulRightₗ_apply
+
+end CommSemiring
+
+end LinearMap
chore(Topology/Algebra/Module/Basic): missing cast lemmas and better defeq (#8267)
Diff
@@ -1093,6 +1093,11 @@ theorem _root_.Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R
   rfl
 #align module.End.nat_cast_apply Module.End.natCast_apply
 
+@[simp]
+theorem _root_.Module.End.ofNat_apply (n : ℕ) [n.AtLeastTwo] (m : M) :
+    (no_index (OfNat.ofNat n) : Module.End R M) m = OfNat.ofNat n • m :=
+  rfl
+
 instance _root_.Module.End.ring : Ring (Module.End R N₁) :=
   { Module.End.semiring, LinearMap.addCommGroup with
     intCast := fun z ↦ z • (1 : N₁ →ₗ[R] N₁)
refactor(Algebra/Hom): transpose Hom and file name (#8095)

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

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

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

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

Diff
@@ -4,11 +4,11 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne Baanen,
   Frédéric Dupuis, Heather Macbeth
 -/
-import Mathlib.Algebra.Hom.GroupAction
 import Mathlib.Algebra.Module.Pi
+import Mathlib.Algebra.Ring.CompTypeclasses
 import Mathlib.Algebra.Star.Basic
 import Mathlib.Data.Set.Pointwise.SMul
-import Mathlib.Algebra.Ring.CompTypeclasses
+import Mathlib.GroupTheory.GroupAction.Hom
 
 #align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
 
feat: Hom(N, M) is Noetherian when M is Noetherian and N is finitely-generated. (#7276)

Co-authored-by: Junyan Xu <junyanxu.math@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -576,14 +576,24 @@ theorem comp_assoc
 
 variable {f g} {f' : M₂ →ₛₗ[σ₂₃] M₃} {g' : M₁ →ₛₗ[σ₁₂] M₂}
 
+/-- The linear map version of `Function.Surjective.injective_comp_right` -/
+lemma _root_.Function.Surjective.injective_linearMapComp_right (hg : Surjective g) :
+    Injective fun f : M₂ →ₛₗ[σ₂₃] M₃ ↦ f.comp g :=
+  fun _ _ h ↦ ext <| hg.forall.2 (ext_iff.1 h)
+
 @[simp]
-theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
-  ⟨fun h ↦ ext <| hg.forall.2 (ext_iff.1 h), fun h ↦ h ▸ rfl⟩
+theorem cancel_right (hg : Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
+  hg.injective_linearMapComp_right.eq_iff
 #align linear_map.cancel_right LinearMap.cancel_right
 
+/-- The linear map version of `Function.Injective.comp_left` -/
+lemma _root_.Function.Injective.injective_linearMapComp_left (hf : Injective f) :
+    Injective fun g : M₁ →ₛₗ[σ₁₂] M₂ ↦ f.comp g :=
+  fun g₁ g₂ (h : f.comp g₁ = f.comp g₂) ↦ ext fun x ↦ hf <| by rw [← comp_apply, h, comp_apply]
+
 @[simp]
-theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
-  ⟨fun h ↦ ext fun x ↦ hf <| by rw [← comp_apply, h, comp_apply], fun h ↦ h ▸ rfl⟩
+theorem cancel_left (hf : Injective f) : f.comp g = f.comp g' ↔ g = g' :=
+  hf.injective_linearMapComp_left.eq_iff
 #align linear_map.cancel_left LinearMap.cancel_left
 
 end
chore: move some lemmas about LinearMap pow/comp earlier (#7158)
Diff
@@ -565,6 +565,15 @@ theorem id_comp : id.comp f = f :=
   LinearMap.ext fun _ ↦ rfl
 #align linear_map.id_comp LinearMap.id_comp
 
+theorem comp_assoc
+    {R₄ : Type*} {M₄ : Type*} [Semiring R₄] [AddCommMonoid M₄] [Module R₄ M₄]
+    {σ₃₄ : R₃ →+* R₄} {σ₂₄ : R₂ →+* R₄} {σ₁₄ : R₁ →+* R₄}
+    [RingHomCompTriple σ₂₃ σ₃₄ σ₂₄] [RingHomCompTriple σ₁₃ σ₃₄ σ₁₄] [RingHomCompTriple σ₁₂ σ₂₄ σ₁₄]
+    (f : M₁ →ₛₗ[σ₁₂] M₂) (g : M₂ →ₛₗ[σ₂₃] M₃) (h : M₃ →ₛₗ[σ₃₄] M₄) :
+    ((h.comp g : M₂ →ₛₗ[σ₂₄] M₄).comp f : M₁ →ₛₗ[σ₁₄] M₄) = h.comp (g.comp f : M₁ →ₛₗ[σ₁₃] M₃) :=
+  rfl
+#align linear_map.comp_assoc LinearMap.comp_assoc
+
 variable {f g} {f' : M₂ →ₛₗ[σ₂₃] M₃} {g' : M₁ →ₛₗ[σ₁₂] M₂}
 
 @[simp]
@@ -1010,8 +1019,6 @@ end Actions
 
 /-!
 ### Monoid structure of endomorphisms
-
-Lemmas about `pow` such as `LinearMap.pow_apply` appear in later files.
 -/
 
 
@@ -1120,6 +1127,70 @@ theorem _root_.Module.End_isUnit_inv_apply_apply_of_isUnit
   (by simp : (h.unit.inv * f) x = x)
 #align module.End_is_unit_inv_apply_apply_of_is_unit Module.End_isUnit_inv_apply_apply_of_isUnit
 
+theorem coe_pow (f : M →ₗ[R] M) (n : ℕ) : ⇑(f ^ n) = f^[n] := hom_coe_pow _ rfl (fun _ _ ↦ rfl) _ _
+#align linear_map.coe_pow LinearMap.coe_pow
+
+theorem pow_apply (f : M →ₗ[R] M) (n : ℕ) (m : M) : (f ^ n) m = f^[n] m := congr_fun (coe_pow f n) m
+#align linear_map.pow_apply LinearMap.pow_apply
+
+theorem pow_map_zero_of_le {f : Module.End R M} {m : M} {k l : ℕ} (hk : k ≤ l)
+    (hm : (f ^ k) m = 0) : (f ^ l) m = 0 := by
+  rw [← tsub_add_cancel_of_le hk, pow_add, mul_apply, hm, map_zero]
+#align linear_map.pow_map_zero_of_le LinearMap.pow_map_zero_of_le
+
+theorem commute_pow_left_of_commute
+    [Semiring R₂] [AddCommMonoid M₂] [Module R₂ M₂] {σ₁₂ : R →+* R₂}
+    {f : M →ₛₗ[σ₁₂] M₂} {g : Module.End R M} {g₂ : Module.End R₂ M₂}
+    (h : g₂.comp f = f.comp g) (k : ℕ) : (g₂ ^ k).comp f = f.comp (g ^ k) := by
+  induction' k with k ih
+  · simp only [Nat.zero_eq, pow_zero, one_eq_id, id_comp, comp_id]
+  · rw [pow_succ, pow_succ, LinearMap.mul_eq_comp, LinearMap.comp_assoc, ih, ← LinearMap.comp_assoc,
+      h, LinearMap.comp_assoc, LinearMap.mul_eq_comp]
+#align linear_map.commute_pow_left_of_commute LinearMap.commute_pow_left_of_commute
+
+@[simp]
+theorem id_pow (n : ℕ) : (id : M →ₗ[R] M) ^ n = id :=
+  one_pow n
+#align linear_map.id_pow LinearMap.id_pow
+
+variable {f' : M →ₗ[R] M}
+
+theorem iterate_succ (n : ℕ) : f' ^ (n + 1) = comp (f' ^ n) f' := by rw [pow_succ', mul_eq_comp]
+#align linear_map.iterate_succ LinearMap.iterate_succ
+
+theorem iterate_surjective (h : Surjective f') : ∀ n : ℕ, Surjective (f' ^ n)
+  | 0 => surjective_id
+  | n + 1 => by
+    rw [iterate_succ]
+    exact (iterate_surjective h n).comp h
+#align linear_map.iterate_surjective LinearMap.iterate_surjective
+
+theorem iterate_injective (h : Injective f') : ∀ n : ℕ, Injective (f' ^ n)
+  | 0 => injective_id
+  | n + 1 => by
+    rw [iterate_succ]
+    exact (iterate_injective h n).comp h
+#align linear_map.iterate_injective LinearMap.iterate_injective
+
+theorem iterate_bijective (h : Bijective f') : ∀ n : ℕ, Bijective (f' ^ n)
+  | 0 => bijective_id
+  | n + 1 => by
+    rw [iterate_succ]
+    exact (iterate_bijective h n).comp h
+#align linear_map.iterate_bijective LinearMap.iterate_bijective
+
+theorem injective_of_iterate_injective {n : ℕ} (hn : n ≠ 0) (h : Injective (f' ^ n)) :
+    Injective f' := by
+  rw [← Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr hn), iterate_succ, coe_comp] at h
+  exact h.of_comp
+#align linear_map.injective_of_iterate_injective LinearMap.injective_of_iterate_injective
+
+theorem surjective_of_iterate_surjective {n : ℕ} (hn : n ≠ 0) (h : Surjective (f' ^ n)) :
+    Surjective f' := by
+  rw [← Nat.succ_pred_eq_of_pos (pos_iff_ne_zero.mpr hn), pow_succ, coe_mul] at h
+  exact Surjective.of_comp h
+#align linear_map.surjective_of_iterate_surjective LinearMap.surjective_of_iterate_surjective
+
 end
 
 /-! ### Action by a module endomorphism. -/
perf: remove overspecified fields (#6965)

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

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

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

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

Diff
@@ -158,7 +158,6 @@ variable {σ : R →+* S}
 instance (priority := 100) addMonoidHomClass [SemilinearMapClass F σ M M₃] :
     AddMonoidHomClass F M M₃ :=
   { SemilinearMapClass.toAddHomClass with
-    coe := fun f ↦ (f : M → M₃)
     map_zero := fun f ↦
       show f 0 = 0 by
         rw [← zero_smul R (0 : M), map_smulₛₗ]
@@ -167,7 +166,6 @@ instance (priority := 100) addMonoidHomClass [SemilinearMapClass F σ M M₃] :
 instance (priority := 100) distribMulActionHomClass [LinearMapClass F R M M₂] :
     DistribMulActionHomClass F R M M₂ :=
   { SemilinearMapClass.addMonoidHomClass F with
-    coe := fun f ↦ (f : M → M₂)
     map_smul := fun f c x ↦ by rw [map_smulₛₗ, RingHom.id_apply] }
 
 variable {F} (f : F) [i : SemilinearMapClass F σ M M₃]
@@ -263,7 +261,7 @@ theorem coe_addHom_mk {σ : R →+* S} (f : AddHom M M₃) (h) :
 
 /-- Identity map as a `LinearMap` -/
 def id : M →ₗ[R] M :=
-  { DistribMulActionHom.id R with toFun := _root_.id }
+  { DistribMulActionHom.id R with }
 #align linear_map.id LinearMap.id
 
 theorem id_apply (x : M) : @id R M _ _ _ x = x :=
@@ -521,7 +519,6 @@ end
 @[simps]
 def _root_.RingHom.toSemilinearMap (f : R →+* S) : R →ₛₗ[f] S :=
   { f with
-    toFun := f
     map_smul' := f.map_mul }
 #align ring_hom.to_semilinear_map RingHom.toSemilinearMap
 #align ring_hom.to_semilinear_map_apply RingHom.toSemilinearMap_apply
@@ -1064,10 +1061,6 @@ instance _root_.Module.End.monoid : Monoid (Module.End R M) where
 
 instance _root_.Module.End.semiring : Semiring (Module.End R M) :=
   { AddMonoidWithOne.unary, Module.End.monoid, LinearMap.addCommMonoid with
-    mul := (· * ·)
-    one := (1 : M →ₗ[R] M)
-    zero := (0 : M →ₗ[R] M)
-    add := (· + ·)
     mul_zero := comp_zero
     zero_mul := zero_comp
     left_distrib := fun _ _ _ ↦ comp_add _ _ _
@@ -1085,10 +1078,6 @@ theorem _root_.Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R
 
 instance _root_.Module.End.ring : Ring (Module.End R N₁) :=
   { Module.End.semiring, LinearMap.addCommGroup with
-    mul := (· * ·)
-    one := (1 : N₁ →ₗ[R] N₁)
-    zero := (0 : N₁ →ₗ[R] N₁)
-    add := (· + ·)
     intCast := fun z ↦ z • (1 : N₁ →ₗ[R] N₁)
     intCast_ofNat := ofNat_zsmul _
     intCast_negSucc := negSucc_zsmul _ }
chore: make fields of algebraic (iso)morphisms protected (#7150)

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

Diff
@@ -92,7 +92,7 @@ structure LinearMap {R : Type*} {S : Type*} [Semiring R] [Semiring S] (σ : R 
     AddHom M M₂ where
   /-- A linear map preserves scalar multiplication.
   We prefer the spelling `_root_.map_smul` instead. -/
-  map_smul' : ∀ (r : R) (x : M), toFun (r • x) = σ r • toFun x
+  protected map_smul' : ∀ (r : R) (x : M), toFun (r • x) = σ r • toFun x
 #align linear_map LinearMap
 
 /-- The `AddHom` underlying a `LinearMap`. -/
style: fix wrapping of where (#7149)
Diff
@@ -1159,12 +1159,12 @@ instance apply_faithfulSMul : FaithfulSMul (Module.End R M) M :=
   ⟨LinearMap.ext⟩
 #align linear_map.apply_has_faithful_smul LinearMap.apply_faithfulSMul
 
-instance apply_smulCommClass : SMulCommClass R (Module.End R M) M
-    where smul_comm r e m := (e.map_smul r m).symm
+instance apply_smulCommClass : SMulCommClass R (Module.End R M) M where
+  smul_comm r e m := (e.map_smul r m).symm
 #align linear_map.apply_smul_comm_class LinearMap.apply_smulCommClass
 
-instance apply_smulCommClass' : SMulCommClass (Module.End R M) R M
-    where smul_comm := LinearMap.map_smul
+instance apply_smulCommClass' : SMulCommClass (Module.End R M) R M where
+  smul_comm := LinearMap.map_smul
 #align linear_map.apply_smul_comm_class' LinearMap.apply_smulCommClass'
 
 instance apply_isScalarTower {R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] :
fix(Algebra/Module/LinearMap): weaken an over-eager coercion (#6786)

We do not want AlgHom to cast to LinearMap via the rarely-used DistribMulActionHom.

The only places this was used are:

  • ones that I wrote accidentally, which are replaced with AlgHom.toLinearMap (for which lemmas already exist)
  • a non-unital case, where I've inserted the transitive coercion manually (and a TODO); a syntactic change that does not change the underlying term

We could consider adding a LinearMapClass.toLinearMap coercion in a future PR, but I would guess this is just unification hell compared to AlgHom.toLinearMap, so I don't want to volunteer to do it.

Diff
@@ -659,7 +659,7 @@ def toLinearMap (fₗ : M →+[R] M₂) : M →ₗ[R] M₂ :=
   { fₗ with }
 #align distrib_mul_action_hom.to_linear_map DistribMulActionHom.toLinearMap
 
-instance : Coe (M →+[R] M₂) (M →ₗ[R] M₂) :=
+instance : CoeTC (M →+[R] M₂) (M →ₗ[R] M₂) :=
   ⟨toLinearMap⟩
 
 -- Porting note: because coercions get unfolded, there is no need for this rewrite
chore: @[simp] cancel_(right|left) (#6300)

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

Diff
@@ -570,10 +570,12 @@ theorem id_comp : id.comp f = f :=
 
 variable {f g} {f' : M₂ →ₛₗ[σ₂₃] M₃} {g' : M₁ →ₛₗ[σ₁₂] M₂}
 
+@[simp]
 theorem cancel_right (hg : Function.Surjective g) : f.comp g = f'.comp g ↔ f = f' :=
   ⟨fun h ↦ ext <| hg.forall.2 (ext_iff.1 h), fun h ↦ h ▸ rfl⟩
 #align linear_map.cancel_right LinearMap.cancel_right
 
+@[simp]
 theorem cancel_left (hf : Function.Injective f) : f.comp g = f.comp g' ↔ g = g' :=
   ⟨fun h ↦ ext fun x ↦ hf <| by rw [← comp_apply, h, comp_apply], fun h ↦ h ▸ rfl⟩
 #align linear_map.cancel_left LinearMap.cancel_left
feat: presheaf of modules over a presheaf of rings (#4670)

This is extracted from the draft PR https://github.com/leanprover-community/mathlib4/pull/4116 which tries to compare this definition with the definition in terms of a presheaf in RingMod.

Co-authored-by: Oliver Nash <github@olivernash.org> Co-authored-by: Christopher Hoskin <christopher.hoskin@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Anatole Dedecker <anatolededecker@gmail.com> Co-authored-by: Matthew Robert Ballard <k.buzzard@imperial.ac.uk> Co-authored-by: Peter Nelson <71660771+apnelson1@users.noreply.github.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Rémy Degenne <remydegenne@gmail.com> Co-authored-by: Thomas Browning <tb65536@uw.edu> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Robert Ballard <matt@mrb.email> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Arend Mellendijk <arend.mellendijk@gmail.com> Co-authored-by: Markus Himmel <markus@himmel-villmar.de> Co-authored-by: Christopher Hoskin <christopher.hoskin@overleaf.com> Co-authored-by: Bulhwi Cha <chabulhwi@semmalgil.com> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: negiizhao <egresf@gmail.com> Co-authored-by: Alex J Best <alex.j.best@gmail.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com> Co-authored-by: Chris Hughes <chrishughes24@gmail.com> Co-authored-by: Jz Pan <acme_pjz@hotmail.com>

Diff
@@ -275,6 +275,21 @@ theorem id_coe : ((LinearMap.id : M →ₗ[R] M) : M → M) = _root_.id :=
   rfl
 #align linear_map.id_coe LinearMap.id_coe
 
+/-- A generalisation of `LinearMap.id` that constructs the identity function
+as a `σ`-semilinear map for any ring homomorphism `σ` which we know is the identity. -/
+@[simps]
+def id' {σ : R →+* R} [RingHomId σ] : M →ₛₗ[σ] M where
+  toFun x := x
+  map_add' x y := rfl
+  map_smul' r x := by
+    have := (RingHomId.eq_id : σ = _)
+    subst this
+    rfl
+
+@[simp, norm_cast]
+theorem id'_coe {σ : R →+* R} [RingHomId σ] : ((id' : M →ₛₗ[σ] M) : M → M) = _root_.id :=
+  rfl
+
 end
 
 section
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -62,10 +62,10 @@ open Function
 
 universe u u' v w x y z
 
-variable {R : Type _} {R₁ : Type _} {R₂ : Type _} {R₃ : Type _}
-variable {k : Type _} {S : Type _} {S₃ : Type _} {T : Type _}
-variable {M : Type _} {M₁ : Type _} {M₂ : Type _} {M₃ : Type _}
-variable {N₁ : Type _} {N₂ : Type _} {N₃ : Type _} {ι : Type _}
+variable {R : Type*} {R₁ : Type*} {R₂ : Type*} {R₃ : Type*}
+variable {k : Type*} {S : Type*} {S₃ : Type*} {T : Type*}
+variable {M : Type*} {M₁ : Type*} {M₂ : Type*} {M₃ : Type*}
+variable {N₁ : Type*} {N₂ : Type*} {N₃ : Type*} {ι : Type*}
 
 /-- A map `f` between modules over a semiring is linear if it satisfies the two properties
 `f (x + y) = f x + f y` and `f (c • x) = c • f x`. The predicate `IsLinearMap R f` asserts this
@@ -87,8 +87,8 @@ is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `M →ₛₗ[σ] M₂`) are bundled versions of such maps. For plain linear maps (i.e. for which
 `σ = RingHom.id R`), the notation `M →ₗ[R] M₂` is available. An unbundled version of plain linear
 maps is available with the predicate `IsLinearMap`, but it should be avoided most of the time. -/
-structure LinearMap {R : Type _} {S : Type _} [Semiring R] [Semiring S] (σ : R →+* S) (M : Type _)
-    (M₂ : Type _) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] extends
+structure LinearMap {R : Type*} {S : Type*} [Semiring R] [Semiring S] (σ : R →+* S) (M : Type*)
+    (M₂ : Type*) [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module S M₂] extends
     AddHom M M₂ where
   /-- A linear map preserves scalar multiplication.
   We prefer the spelling `_root_.map_smul` instead. -/
@@ -118,8 +118,8 @@ See also `LinearMapClass F R M M₂` for the case where `σ` is the identity map
 A map `f` between an `R`-module and an `S`-module over a ring homomorphism `σ : R →+* S`
 is semilinear if it satisfies the two properties `f (x + y) = f x + f y` and
 `f (c • x) = (σ c) • f x`. -/
-class SemilinearMapClass (F : Type _) {R S : outParam (Type _)} [Semiring R] [Semiring S]
-  (σ : outParam (R →+* S)) (M M₂ : outParam (Type _)) [AddCommMonoid M] [AddCommMonoid M₂]
+class SemilinearMapClass (F : Type*) {R S : outParam (Type*)} [Semiring R] [Semiring S]
+  (σ : outParam (R →+* S)) (M M₂ : outParam (Type*)) [AddCommMonoid M] [AddCommMonoid M₂]
   [Module R M] [Module S M₂] extends AddHomClass F M M₂ where
   /-- A semilinear map preserves scalar multiplication up to some ring homomorphism `σ`.
   See also `_root_.map_smul` for the case where `σ` is the identity. -/
@@ -140,14 +140,14 @@ attribute [simp] map_smulₛₗ
 
 This is an abbreviation for `SemilinearMapClass F (RingHom.id R) M M₂`.
 -/
-abbrev LinearMapClass (F : Type _) (R M M₂ : outParam (Type _)) [Semiring R] [AddCommMonoid M]
+abbrev LinearMapClass (F : Type*) (R M M₂ : outParam (Type*)) [Semiring R] [AddCommMonoid M]
     [AddCommMonoid M₂] [Module R M] [Module R M₂] :=
   SemilinearMapClass F (RingHom.id R) M M₂
 #align linear_map_class LinearMapClass
 
 namespace SemilinearMapClass
 
-variable (F : Type _)
+variable (F : Type*)
 variable [Semiring R] [Semiring S]
 variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
 variable [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N₃]
@@ -351,7 +351,7 @@ section Pointwise
 
 open Pointwise
 
-variable (M M₃ σ) {F : Type _} (h : F)
+variable (M M₃ σ) {F : Type*} (h : F)
 
 @[simp]
 theorem _root_.image_smul_setₛₗ [SemilinearMapClass F σ M M₃] (c : R) (s : Set M) :
@@ -397,7 +397,7 @@ This typeclass is generated automatically from an `IsScalarTower` instance, but
 we can also add an instance for `AddCommGroup.intModule`, allowing `z •` to be moved even if
 `R` does not support negation.
 -/
-class CompatibleSMul (R S : Type _) [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
+class CompatibleSMul (R S : Type*) [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
   [Module S M₂] : Prop where
   /-- Scalar multiplication by `R` of `M` can be moved through linear maps. -/
   map_smul : ∀ (fₗ : M →ₗ[S] M₂) (c : R) (x : M), fₗ (c • x) = c • fₗ x
@@ -405,14 +405,14 @@ class CompatibleSMul (R S : Type _) [Semiring S] [SMul R M] [Module S M] [SMul R
 
 variable {M M₂}
 
-instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type _} [Semiring S] [SMul R S]
+instance (priority := 100) IsScalarTower.compatibleSMul {R S : Type*} [Semiring S] [SMul R S]
     [SMul R M] [Module S M] [IsScalarTower R S M] [SMul R M₂] [Module S M₂] [IsScalarTower R S M₂] :
     CompatibleSMul M M₂ R S :=
   ⟨fun fₗ c x ↦ by rw [← smul_one_smul S c x, ← smul_one_smul S c (fₗ x), map_smul]⟩
 #align linear_map.is_scalar_tower.compatible_smul LinearMap.IsScalarTower.compatibleSMul
 
 @[simp]
-theorem map_smul_of_tower {R S : Type _} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
+theorem map_smul_of_tower {R S : Type*} [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
     [Module S M₂] [CompatibleSMul M M₂ R S] (fₗ : M →ₗ[S] M₂) (c : R) (x : M) :
     fₗ (c • x) = c • fₗ x :=
   CompatibleSMul.map_smul fₗ c x
@@ -599,7 +599,7 @@ protected theorem map_sub (x y : M) : f (x - y) = f x - f y :=
   map_sub f x y
 #align linear_map.map_sub LinearMap.map_sub
 
-instance CompatibleSMul.intModule {S : Type _} [Semiring S] [Module S M] [Module S M₂] :
+instance CompatibleSMul.intModule {S : Type*} [Semiring S] [Module S M] [Module S M₂] :
     CompatibleSMul M M₂ ℤ S :=
   ⟨fun fₗ c x ↦ by
     induction c using Int.induction_on
@@ -608,7 +608,7 @@ instance CompatibleSMul.intModule {S : Type _} [Semiring S] [Module S M] [Module
     case hn n ih => simp [sub_smul, ih]⟩
 #align linear_map.compatible_smul.int_module LinearMap.CompatibleSMul.intModule
 
-instance CompatibleSMul.units {R S : Type _} [Monoid R] [MulAction R M] [MulAction R M₂]
+instance CompatibleSMul.units {R S : Type*} [Monoid R] [MulAction R M] [MulAction R M₂]
     [Semiring S] [Module S M] [Module S M₂] [CompatibleSMul M M₂ R S] : CompatibleSMul M M₂ Rˣ S :=
   ⟨fun fₗ c x ↦ (CompatibleSMul.map_smul fₗ (c : R) x : _)⟩
 #align linear_map.compatible_smul.units LinearMap.CompatibleSMul.units
@@ -621,7 +621,7 @@ namespace Module
 
 /-- `g : R →+* S` is `R`-linear when the module structure on `S` is `Module.compHom S g` . -/
 @[simps]
-def compHom.toLinearMap {R S : Type _} [Semiring R] [Semiring S] (g : R →+* S) :
+def compHom.toLinearMap {R S : Type*} [Semiring R] [Semiring S] (g : R →+* S) :
     letI := compHom S g; R →ₗ[R] S :=
   letI := compHom S g
   { toFun := (g : R → S)
@@ -682,14 +682,14 @@ theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f
   rfl
 #align is_linear_map.mk'_apply IsLinearMap.mk'_apply
 
-theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Module R M] (c : R) :
+theorem isLinearMap_smul {R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] (c : R) :
     IsLinearMap R fun z : M ↦ c • z := by
   refine' IsLinearMap.mk (smul_add c) _
   intro _ _
   simp only [smul_smul, mul_comm]
 #align is_linear_map.is_linear_map_smul IsLinearMap.isLinearMap_smul
 
-theorem isLinearMap_smul' {R M : Type _} [Semiring R] [AddCommMonoid M] [Module R M] (a : M) :
+theorem isLinearMap_smul' {R M : Type*} [Semiring R] [AddCommMonoid M] [Module R M] (a : M) :
     IsLinearMap R fun c : R ↦ c • a :=
   IsLinearMap.mk (fun x y ↦ add_smul x y a) fun x y ↦ mul_smul x y a
 #align is_linear_map.is_linear_map_smul' IsLinearMap.isLinearMap_smul'
@@ -1150,7 +1150,7 @@ instance apply_smulCommClass' : SMulCommClass (Module.End R M) R M
     where smul_comm := LinearMap.map_smul
 #align linear_map.apply_smul_comm_class' LinearMap.apply_smulCommClass'
 
-instance apply_isScalarTower {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Module R M] :
+instance apply_isScalarTower {R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] :
     IsScalarTower R (Module.End R M) M :=
   ⟨fun _ _ _ ↦ rfl⟩
 #align linear_map.apply_is_scalar_tower LinearMap.apply_isScalarTower
chore: ensure all instances referred to directly have explicit names (#6423)

Per https://github.com/leanprover/lean4/issues/2343, we are going to need to change the automatic generation of instance names, as they become too long.

This PR ensures that everywhere in Mathlib that refers to an instance by name, that name is given explicitly, rather than being automatically generated.

There are four exceptions, which are now commented, with links to https://github.com/leanprover/lean4/issues/2343.

This was implemented by running Mathlib against a modified Lean that appended _ᾰ to all automatically generated names, and fixing everything.

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

Diff
@@ -210,7 +210,7 @@ instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M
 #noalign LinearMap.has_coe_to_fun
 
 -- Porting note: adding this instance prevents a timeout in `ext_ring_op`
-instance {σ : R →+* S} : FunLike (M →ₛₗ[σ] M₃) M (λ _ ↦ M₃) :=
+instance instFunLike {σ : R →+* S} : FunLike (M →ₛₗ[σ] M₃) M (λ _ ↦ M₃) :=
   { AddHomClass.toFunLike with }
 
 /-- The `DistribMulActionHom` underlying a `LinearMap`. -/
refactor(Algebra/Module/LinearMap): generalize the endomorphism algebra instance (#6207)

Note that the module instance was already generalized; we were just missing the fact that when combined with the existing ring instance, the result was an algebra.

This also moves some lemmas about IsUnit (_ : Module.End R M) to an earlier file as they are nothing to do with Algebra.

Diff
@@ -1102,6 +1102,18 @@ instance _root_.Module.End.smulCommClass' [SMul S R] [IsScalarTower S R M] :
   SMulCommClass.symm _ _ _
 #align module.End.smul_comm_class' Module.End.smulCommClass'
 
+theorem _root_.Module.End_isUnit_apply_inv_apply_of_isUnit
+    {f : Module.End R M} (h : IsUnit f) (x : M) :
+    f (h.unit.inv x) = x :=
+  show (f * h.unit.inv) x = x by simp
+#align module.End_is_unit_apply_inv_apply_of_is_unit Module.End_isUnit_apply_inv_apply_of_isUnit
+
+theorem _root_.Module.End_isUnit_inv_apply_apply_of_isUnit
+    {f : Module.End R M} (h : IsUnit f) (x : M) :
+    h.unit.inv (f x) = x :=
+  (by simp : (h.unit.inv * f) x = x)
+#align module.End_is_unit_inv_apply_apply_of_is_unit Module.End_isUnit_inv_apply_apply_of_isUnit
+
 end
 
 /-! ### Action by a module endomorphism. -/
chore: tidy various files (#6158)
Diff
@@ -27,7 +27,7 @@ In this file we define
 
 We then provide `LinearMap` with the following instances:
 
-* `LinearMap.addCommMonoid` and `LinearMap.AddCommGroup`: the elementwise addition structures
+* `LinearMap.addCommMonoid` and `LinearMap.addCommGroup`: the elementwise addition structures
   corresponding to addition in the codomain
 * `LinearMap.distribMulAction` and `LinearMap.module`: the elementwise scalar action structures
   corresponding to applying the action in the codomain.
@@ -232,8 +232,7 @@ theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
 
 /-- Copy of a `LinearMap` with a new `toFun` equal to the old one. Useful to fix definitional
 equalities. -/
-protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : M →ₛₗ[σ] M₃
-    where
+protected def copy (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : M →ₛₗ[σ] M₃ where
   toFun := f'
   map_add' := h.symm ▸ f.map_add'
   map_smul' := h.symm ▸ f.map_smul'
@@ -447,7 +446,7 @@ See also `LinearMap.map_smul_of_tower`. -/
   map_smul' := fₗ.map_smul_of_tower
 #align linear_map.restrict_scalars LinearMap.restrictScalars
 
--- porting note: generalized from `Algebra` to `Compatible SMul`
+-- porting note: generalized from `Algebra` to `CompatibleSMul`
 instance coeIsScalarTower : CoeHTCT (M →ₗ[S] M₂) (M →ₗ[R] M₂) :=
   ⟨restrictScalars R⟩
 #align linear_map.coe_is_scalar_tower LinearMap.coeIsScalarTower
@@ -528,7 +527,6 @@ def comp : M₁ →ₛₗ[σ₁₃] M₃ where
   map_smul' r x := by simp only [Function.comp_apply, map_smulₛₗ, RingHomCompTriple.comp_apply]
 #align linear_map.comp LinearMap.comp
 
--- mathport name: «expr ∘ₗ »
 set_option quotPrecheck false in -- Porting note: error message suggested to do this
 /-- `∘ₗ` is notation for composition of two linear (not semilinear!) maps into a linear map.
 This is useful when Lean is struggling to infer the `RingHomCompTriple` instance. -/
@@ -625,10 +623,10 @@ namespace Module
 @[simps]
 def compHom.toLinearMap {R S : Type _} [Semiring R] [Semiring S] (g : R →+* S) :
     letI := compHom S g; R →ₗ[R] S :=
-letI := compHom S g
-{ toFun := (g : R → S)
-  map_add' := g.map_add
-  map_smul' := g.map_mul }
+  letI := compHom S g
+  { toFun := (g : R → S)
+    map_add' := g.map_add
+    map_smul' := g.map_mul }
 #align module.comp_hom.to_linear_map Module.compHom.toLinearMap
 #align module.comp_hom.to_linear_map_apply Module.compHom.toLinearMap_apply
 
@@ -673,8 +671,7 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂]
 variable [Module R M] [Module R M₂]
 
 /-- Convert an `IsLinearMap` predicate to a `LinearMap` -/
-def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂
-    where
+def mk' (f : M → M₂) (H : IsLinearMap R f) : M →ₗ[R] M₂ where
   toFun := f
   map_add' := H.1
   map_smul' := H.2
@@ -821,11 +818,12 @@ instance [SMulCommClass S T M₂] : SMulCommClass S T (M →ₛₗ[σ₁₂] M
 
 -- example application of this instance: if S -> T -> R are homomorphisms of commutative rings and
 -- M and M₂ are R-modules then the S-module and T-module structures on Hom_R(M,M₂) are compatible.
-instance [SMul S T] [IsScalarTower S T M₂] : IsScalarTower S T (M →ₛₗ[σ₁₂] M₂)
-    where smul_assoc _ _ _ := ext fun _ ↦ smul_assoc _ _ _
+instance [SMul S T] [IsScalarTower S T M₂] : IsScalarTower S T (M →ₛₗ[σ₁₂] M₂) where
+  smul_assoc _ _ _ := ext fun _ ↦ smul_assoc _ _ _
 
 instance [DistribMulAction Sᵐᵒᵖ M₂] [SMulCommClass R₂ Sᵐᵒᵖ M₂] [IsCentralScalar S M₂] :
-    IsCentralScalar S (M →ₛₗ[σ₁₂] M₂) where op_smul_eq_smul _ _ := ext fun _ ↦ op_smul_eq_smul _ _
+    IsCentralScalar S (M →ₛₗ[σ₁₂] M₂) where
+  op_smul_eq_smul _ _ := ext fun _ ↦ op_smul_eq_smul _ _
 
 end SMul
 
@@ -985,8 +983,7 @@ section Module
 
 variable [Semiring S] [Module S M₂] [SMulCommClass R₂ S M₂]
 
-instance module : Module S (M →ₛₗ[σ₁₂] M₂)
-    where
+instance module : Module S (M →ₛₗ[σ₁₂] M₂) where
   add_smul _ _ _ := ext fun _ ↦ add_smul _ _ _
   zero_smul _ := ext fun _ ↦ zero_smul _ _
 
@@ -1113,8 +1110,7 @@ end
 /-- The tautological action by `Module.End R M` (aka `M →ₗ[R] M`) on `M`.
 
 This generalizes `Function.End.applyMulAction`. -/
-instance applyModule : Module (Module.End R M) M
-    where
+instance applyModule : Module (Module.End R M) M where
   smul := (· <| ·)
   smul_zero := LinearMap.map_zero
   smul_add := LinearMap.map_add
@@ -1175,8 +1171,7 @@ def toLinearMap (s : S) : M →ₗ[R] M where
 
 This is a stronger version of `DistribMulAction.toAddMonoidEnd`. -/
 @[simps]
-def toModuleEnd : S →* Module.End R M
-    where
+def toModuleEnd : S →* Module.End R M where
   toFun := toLinearMap R M
   map_one' := LinearMap.ext <| one_smul _
   map_mul' _ _ := LinearMap.ext <| mul_smul _ _
@@ -1196,9 +1191,7 @@ variable [Semiring S] [Module S M] [SMulCommClass S R M]
 This is a stronger version of `DistribMulAction.toModuleEnd`. -/
 @[simps]
 def toModuleEnd : S →+* Module.End R M :=
-  {
-    DistribMulAction.toModuleEnd R
-      M with
+  { DistribMulAction.toModuleEnd R M with
     toFun := DistribMulAction.toLinearMap R M
     map_zero' := LinearMap.ext <| zero_smul S
     map_add' := fun _ _ ↦ LinearMap.ext <| add_smul _ _ }
feat: add 2 coe_pow lemmas (#6063)

Also drop @[simp] on LinearMap.pow_apply.

Diff
@@ -1040,8 +1040,7 @@ theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
 #align linear_map.coe_mul LinearMap.coe_mul
 
-instance _root_.Module.End.monoid : Monoid (Module.End R M)
-    where
+instance _root_.Module.End.monoid : Monoid (Module.End R M) where
   mul := (· * ·)
   one := (1 : M →ₗ[R] M)
   mul_assoc f g h := LinearMap.ext fun x ↦ rfl
fix: CompatibleSMul : Prop (#6065)

Lean makes it Type otherwise. Why does this happen? Am I missing something?

Diff
@@ -399,7 +399,7 @@ we can also add an instance for `AddCommGroup.intModule`, allowing `z •` to be
 `R` does not support negation.
 -/
 class CompatibleSMul (R S : Type _) [Semiring S] [SMul R M] [Module S M] [SMul R M₂]
-  [Module S M₂] where
+  [Module S M₂] : Prop where
   /-- Scalar multiplication by `R` of `M` can be moved through linear maps. -/
   map_smul : ∀ (fₗ : M →ₗ[S] M₂) (c : R) (x : M), fₗ (c • x) = c • fₗ x
 #align linear_map.compatible_smul LinearMap.CompatibleSMul
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -3,11 +3,6 @@ Copyright (c) 2020 Anne Baanen. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne Baanen,
   Frédéric Dupuis, Heather Macbeth
-
-! This file was ported from Lean 3 source module algebra.module.linear_map
-! leanprover-community/mathlib commit cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Algebra.Hom.GroupAction
 import Mathlib.Algebra.Module.Pi
@@ -15,6 +10,8 @@ import Mathlib.Algebra.Star.Basic
 import Mathlib.Data.Set.Pointwise.SMul
 import Mathlib.Algebra.Ring.CompTypeclasses
 
+#align_import algebra.module.linear_map from "leanprover-community/mathlib"@"cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f"
+
 /-!
 # (Semi)linear maps
 
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -579,7 +579,7 @@ def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [Rin
   dsimp [LeftInverse, Function.RightInverse] at h₁ h₂
   exact
     { toFun := g
-      map_add' := fun x y ↦ by rw [← h₁ (g (x + y)), ← h₁ (g x + g y)] ; simp [h₂]
+      map_add' := fun x y ↦ by rw [← h₁ (g (x + y)), ← h₁ (g x + g y)]; simp [h₂]
       map_smul' := fun a b ↦ by
         dsimp only
         rw [← h₁ (g (a • b)), ← h₁ (σ' a • g b)]
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -373,8 +373,7 @@ theorem _root_.preimage_smul_setₛₗ [SemilinearMapClass F σ M M₃] {c : R}
   apply Set.Subset.antisymm
   · rintro x ⟨y, ys, hy⟩
     refine' ⟨(hc.unit.inv : R) • x, _, _⟩
-    ·
-      simp only [← hy, smul_smul, Set.mem_preimage, Units.inv_eq_val_inv, map_smulₛₗ h, ← map_mul,
+    · simp only [← hy, smul_smul, Set.mem_preimage, Units.inv_eq_val_inv, map_smulₛₗ h, ← map_mul,
         IsUnit.val_inv_mul, one_smul, map_one, ys]
     · simp only [smul_smul, IsUnit.mul_val_inv, one_smul, Units.inv_eq_val_inv]
   · rintro x ⟨y, hy, rfl⟩
chore: fix grammar in docs (#5668)
Diff
@@ -738,7 +738,7 @@ abbrev Module.End (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Modu
   M →ₗ[R] M
 #align module.End Module.End
 
-/-- Reinterpret an additive homomorphism as a `ℕ`-linear map. -/
+/-- Reinterpret an additive homomorphism as an `ℕ`-linear map. -/
 def AddMonoidHom.toNatLinearMap [AddCommMonoid M] [AddCommMonoid M₂] (f : M →+ M₂) : M →ₗ[ℕ] M₂
     where
   toFun := f
chore: fix grammar 1/3 (#5001)

All of these are doc fixes

Diff
@@ -398,7 +398,7 @@ end Pointwise
 variable (M M₂)
 
 /-- A typeclass for `SMul` structures which can be moved through a `LinearMap`.
-This typeclass is generated automatically from a `IsScalarTower` instance, but exists so that
+This typeclass is generated automatically from an `IsScalarTower` instance, but exists so that
 we can also add an instance for `AddCommGroup.intModule`, allowing `z •` to be moved even if
 `R` does not support negation.
 -/
feat: port Algebra.Category.ModuleCat.Algebra (#4801)
Diff
@@ -989,7 +989,7 @@ section Module
 
 variable [Semiring S] [Module S M₂] [SMulCommClass R₂ S M₂]
 
-instance : Module S (M →ₛₗ[σ₁₂] M₂)
+instance module : Module S (M →ₛₗ[σ₁₂] M₂)
     where
   add_smul _ _ _ := ext fun _ ↦ add_smul _ _ _
   zero_smul _ := ext fun _ ↦ zero_smul _ _
chore: fix upper/lowercase in comments (#4360)
  • Run a non-interactive version of fix-comments.py on all files.
  • Go through the diff and manually add/discard/edit chunks.
Diff
@@ -98,7 +98,7 @@ structure LinearMap {R : Type _} {S : Type _} [Semiring R] [Semiring S] (σ : R
   map_smul' : ∀ (r : R) (x : M), toFun (r • x) = σ r • toFun x
 #align linear_map LinearMap
 
-/-- The `add_hom` underlying a `LinearMap`. -/
+/-- The `AddHom` underlying a `LinearMap`. -/
 add_decl_doc LinearMap.toAddHom
 #align linear_map.to_add_hom LinearMap.toAddHom
 
@@ -141,7 +141,7 @@ attribute [simp] map_smulₛₗ
 
 /-- `LinearMapClass F R M M₂` asserts `F` is a type of bundled `R`-linear maps `M → M₂`.
 
-This is an abbreviation for `semilinear_map_class F (RingHom.id R) M M₂`.
+This is an abbreviation for `SemilinearMapClass F (RingHom.id R) M M₂`.
 -/
 abbrev LinearMapClass (F : Type _) (R M M₂ : outParam (Type _)) [Semiring R] [AddCommMonoid M]
     [AddCommMonoid M₂] [Module R M] [Module R M₂] :=
@@ -397,7 +397,7 @@ end Pointwise
 
 variable (M M₂)
 
-/-- A typeclass for `has_smul` structures which can be moved through a `LinearMap`.
+/-- A typeclass for `SMul` structures which can be moved through a `LinearMap`.
 This typeclass is generated automatically from a `IsScalarTower` instance, but exists so that
 we can also add an instance for `AddCommGroup.intModule`, allowing `z •` to be moved even if
 `R` does not support negation.
@@ -625,7 +625,7 @@ end LinearMap
 
 namespace Module
 
-/-- `g : R →+* S` is `R`-linear when the module structure on `S` is `module.comp_hom S g` . -/
+/-- `g : R →+* S` is `R`-linear when the module structure on `S` is `Module.compHom S g` . -/
 @[simps]
 def compHom.toLinearMap {R S : Type _} [Semiring R] [Semiring S] (g : R →+* S) :
     letI := compHom S g; R →ₗ[R] S :=
@@ -1115,7 +1115,7 @@ end
 /-! ### Action by a module endomorphism. -/
 
 
-/-- The tautological action by `module.End R M` (aka `M →ₗ[R] M`) on `M`.
+/-- The tautological action by `Module.End R M` (aka `M →ₗ[R] M`) on `M`.
 
 This generalizes `Function.End.applyMulAction`. -/
 instance applyModule : Module (Module.End R M) M
feat: assert_not_exists (#4245)
Diff
@@ -58,12 +58,8 @@ linear map
 -/
 
 
--- Porting note: `assert_not_exists` is not defined yet
-/-
 assert_not_exists Submonoid
-
-assert_not_exists finset
--/
+assert_not_exists Finset
 
 open Function
 
feat: port Topology.Algebra.Module.FiniteDimension (#3796)

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

Diff
@@ -201,7 +201,7 @@ variable [Module R M] [Module R M₂] [Module S M₃]
 
 variable {σ : R →+* S}
 
-instance : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
+instance semilinearMapClass : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
@@ -211,6 +211,7 @@ instance : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
     exact h
   map_add f := f.map_add'
   map_smulₛₗ := LinearMap.map_smul'
+#align linear_map.semilinear_map_class LinearMap.semilinearMapClass
 
 -- Porting note: we don't port specialized `CoeFun` instances if there is `FunLike` instead
 #noalign LinearMap.has_coe_to_fun
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

Now that leanprover/lean4#2210 has been merged, this PR:

  • removes all the set_option synthInstance.etaExperiment true commands (and some etaExperiment% term elaborators)
  • removes many but not quite all set_option maxHeartbeats commands
  • makes various other changes required to cope with leanprover/lean4#2210.

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>

Diff
@@ -1077,8 +1077,6 @@ theorem _root_.Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R
   rfl
 #align module.End.nat_cast_apply Module.End.natCast_apply
 
--- *TODO*: why are you still timing out?
-set_option maxHeartbeats 300000 in
 instance _root_.Module.End.ring : Ring (Module.End R N₁) :=
   { Module.End.semiring, LinearMap.addCommGroup with
     mul := (· * ·)
chore: bye-bye, solo bys! (#3825)

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

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

Diff
@@ -578,8 +578,8 @@ variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMon
 
 /-- If a function `g` is a left and right inverse of a linear map `f`, then `g` is linear itself. -/
 def inverse [Module R M] [Module S M₂] {σ : R →+* S} {σ' : S →+* R} [RingHomInvPair σ σ']
-    (f : M →ₛₗ[σ] M₂) (g : M₂ → M) (h₁ : LeftInverse g f) (h₂ : RightInverse g f) : M₂ →ₛₗ[σ'] M :=
-  by
+    (f : M →ₛₗ[σ] M₂) (g : M₂ → M) (h₁ : LeftInverse g f) (h₂ : RightInverse g f) :
+    M₂ →ₛₗ[σ'] M := by
   dsimp [LeftInverse, Function.RightInverse] at h₁ h₂
   exact
     { toFun := g
@@ -693,8 +693,7 @@ theorem mk'_apply {f : M → M₂} (H : IsLinearMap R f) (x : M) : mk' f H x = f
 #align is_linear_map.mk'_apply IsLinearMap.mk'_apply
 
 theorem isLinearMap_smul {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Module R M] (c : R) :
-    IsLinearMap R fun z : M ↦ c • z :=
-  by
+    IsLinearMap R fun z : M ↦ c • z := by
   refine' IsLinearMap.mk (smul_add c) _
   intro _ _
   simp only [smul_smul, mul_comm]
@@ -751,8 +750,7 @@ def AddMonoidHom.toNatLinearMap [AddCommMonoid M] [AddCommMonoid M₂] (f : M 
 #align add_monoid_hom.to_nat_linear_map AddMonoidHom.toNatLinearMap
 
 theorem AddMonoidHom.toNatLinearMap_injective [AddCommMonoid M] [AddCommMonoid M₂] :
-    Function.Injective (@AddMonoidHom.toNatLinearMap M M₂ _ _) :=
-  by
+    Function.Injective (@AddMonoidHom.toNatLinearMap M M₂ _ _) := by
   intro f g h
   ext x
   exact LinearMap.congr_fun h x
@@ -767,8 +765,7 @@ def AddMonoidHom.toIntLinearMap [AddCommGroup M] [AddCommGroup M₂] (f : M →+
 #align add_monoid_hom.to_int_linear_map AddMonoidHom.toIntLinearMap
 
 theorem AddMonoidHom.toIntLinearMap_injective [AddCommGroup M] [AddCommGroup M₂] :
-    Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) :=
-  by
+    Function.Injective (@AddMonoidHom.toIntLinearMap M M₂ _ _) := by
   intro f g h
   ext x
   exact LinearMap.congr_fun h x
@@ -787,8 +784,7 @@ def AddMonoidHom.toRatLinearMap [AddCommGroup M] [Module ℚ M] [AddCommGroup M
 #align add_monoid_hom.to_rat_linear_map AddMonoidHom.toRatLinearMap
 
 theorem AddMonoidHom.toRatLinearMap_injective [AddCommGroup M] [Module ℚ M] [AddCommGroup M₂]
-    [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) :=
-  by
+    [Module ℚ M₂] : Function.Injective (@AddMonoidHom.toRatLinearMap M M₂ _ _ _ _) := by
   intro f g h
   ext x
   exact LinearMap.congr_fun h x
feat: port LinearAlgebra.Matrix.ToLin (#3552)

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

Diff
@@ -1179,7 +1179,7 @@ variable [Monoid S] [DistribMulAction S M] [SMulCommClass S R M]
 This is a stronger version of `DistribMulAction.toAddMonoidHom`. -/
 @[simps]
 def toLinearMap (s : S) : M →ₗ[R] M where
-  toFun := SMul.smul s
+  toFun := HSMul.hSMul s
   map_add' := smul_add s
   map_smul' _ _ := smul_comm _ _ _
 #align distrib_mul_action.to_linear_map DistribMulAction.toLinearMap
@@ -1214,7 +1214,7 @@ def toModuleEnd : S →+* Module.End R M :=
     DistribMulAction.toModuleEnd R
       M with
     toFun := DistribMulAction.toLinearMap R M
-    map_zero' := LinearMap.ext <| zero_smul _
+    map_zero' := LinearMap.ext <| zero_smul S
     map_add' := fun _ _ ↦ LinearMap.ext <| add_smul _ _ }
 #align module.to_module_End Module.toModuleEnd
 #align module.to_module_End_apply Module.toModuleEnd_apply
chore: bump to nightly-2023-04-11 (#3139)
Diff
@@ -155,14 +155,13 @@ abbrev LinearMapClass (F : Type _) (R M M₂ : outParam (Type _)) [Semiring R] [
 namespace SemilinearMapClass
 
 variable (F : Type _)
-variable {_ : Semiring R} {_ : Semiring S}
-variable {_ : AddCommMonoid M} {_ : AddCommMonoid M₁} {_ : AddCommMonoid M₂} {_ : AddCommMonoid M₃}
-variable {_ : AddCommMonoid N₁} {_ : AddCommMonoid N₂} {_ : AddCommMonoid N₃}
-variable {_ : Module R M} {_ : Module R M₂} {_ : Module S M₃}
+variable [Semiring R] [Semiring S]
+variable [AddCommMonoid M] [AddCommMonoid M₁] [AddCommMonoid M₂] [AddCommMonoid M₃]
+variable [AddCommMonoid N₁] [AddCommMonoid N₂] [AddCommMonoid N₃]
+variable [Module R M] [Module R M₂] [Module S M₃]
 variable {σ : R →+* S}
 
 -- Porting note: the `dangerousInstance` linter has become smarter about `outParam`s
--- @[nolint dangerousInstance] -- `σ` is an `outParam` so it's not dangerous
 instance (priority := 100) addMonoidHomClass [SemilinearMapClass F σ M M₃] :
     AddMonoidHomClass F M M₃ :=
   { SemilinearMapClass.toAddHomClass with
@@ -172,10 +171,6 @@ instance (priority := 100) addMonoidHomClass [SemilinearMapClass F σ M M₃] :
         rw [← zero_smul R (0 : M), map_smulₛₗ]
         simp }
 
--- The `Semiring` should be an instance parameter but depends on outParams.
--- If Lean 4 gets better support for instance params depending on outParams,
--- we should be able to remove this nolint.
-@[nolint dangerousInstance]
 instance (priority := 100) distribMulActionHomClass [LinearMapClass F R M M₂] :
     DistribMulActionHomClass F R M M₂ :=
   { SemilinearMapClass.addMonoidHomClass F with
feat: port RepresentationTheory.Maschke (#2986)
Diff
@@ -206,8 +206,7 @@ variable [Module R M] [Module R M₂] [Module S M₃]
 
 variable {σ : R →+* S}
 
-instance : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃
-    where
+instance : SemilinearMapClass (M →ₛₗ[σ] M₃) σ M M₃ where
   coe f := f.toFun
   coe_injective' f g h := by
     cases f
fix: Re-enable two extensionality lemmas (#2859)

This fix was found when working on #2850.

A proof in HasseDeriv is fixed to deal with the change in ext behavior, by undoing some of the changes made when porting.

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

Diff
@@ -493,7 +493,7 @@ theorem toAddMonoidHom_injective :
 #align linear_map.to_add_monoid_hom_injective LinearMap.toAddMonoidHom_injective
 
 /-- If two `σ`-linear maps from `R` are equal on `1`, then they are equal. -/
-@[ext]
+@[ext high]
 theorem ext_ring {f g : R →ₛₗ[σ] M₃} (h : f 1 = g 1) : f = g :=
   ext fun x ↦ by rw [← mul_one x, ← smul_eq_mul, f.map_smulₛₗ, g.map_smulₛₗ, h]
 #align linear_map.ext_ring LinearMap.ext_ring
@@ -502,9 +502,7 @@ theorem ext_ring_iff {σ : R →+* R} {f g : R →ₛₗ[σ] M} : f = g ↔ f 1
   ⟨fun h ↦ h ▸ rfl, ext_ring⟩
 #align linear_map.ext_ring_iff LinearMap.ext_ring_iff
 
--- *TODO*: why are you still timing out?
-set_option maxHeartbeats 300000 in
-@[ext]
+@[ext high]
 theorem ext_ring_op {σ : Rᵐᵒᵖ →+* S} {f g : R →ₛₗ[σ] M₃} (h : f (1 : R) = g (1 : R)) :
     f = g :=
   ext fun x ↦ by
feat: initialize_simps_projections automatically finds coercions (#2045)
  • initialize_simps_projections automatically find coercions if there is a Funlike or SetLike instance defined by one of the projections.
  • Some improvements compared to Lean 3:
    • Find coercions even if it is defined by a field of a parent structure
    • Find SetLike coercions

Not yet implemented (and rarely - if ever - used in mathlib3):

  • Automatic custom projections for algebraic notation (like +,*,...)

Co-authored-by: Johan Commelin <johan@commelin.net>

Diff
@@ -260,12 +260,6 @@ theorem copy_eq (f : M →ₛₗ[σ] M₃) (f' : M → M₃) (h : f' = ⇑f) : f
   FunLike.ext' h
 #align linear_map.copy_eq LinearMap.copy_eq
 
-/-- See Note [custom simps projection]. -/
-protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+* S) (M M₃ : Type _)
-    [AddCommMonoid M] [AddCommMonoid M₃] [Module R M] [Module S M₃] (f : M →ₛₗ[σ] M₃) : M → M₃ :=
-  f
-#align linear_map.simps.apply LinearMap.Simps.apply
-
 initialize_simps_projections LinearMap (toFun → apply)
 
 @[simp]
fix: replace symmApply by symm_apply (#2560)
Diff
@@ -1255,7 +1255,7 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
     left_inv := mul_one
     right_inv := fun _ ↦ LinearMap.ext_ring_op <| mul_one _ }
 #align module.module_End_self_op Module.moduleEndSelfOp
-#align module.module_End_self_op_symm_apply Module.moduleEndSelfOp_symmApply
+#align module.module_End_self_op_symm_apply Module.moduleEndSelfOp_symm_apply
 #align module.module_End_self_op_apply Module.moduleEndSelfOp_apply
 
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
feat: simps uses fields of parent structures (#2042)
  • initialize_simps_projections now by default generates all projections of all parent structures, and doesn't generate the projections to those parent structures.
  • You can also rename a nested projection directly, without having to specify intermediate parent structures
  • Added the option to turn the default behavior off (done in e.g. TwoPointed)

Internal changes:

  • Move most declarations to the Simps namespace, and shorten their names
  • Restructure ParsedProjectionData to avoid the bug reported here (and to another bug where it seemed that the wrong data was inserted in ParsedProjectionData, but it was hard to minimize because of all the crashes). If we manage to fix the bug in that Zulip thread, I'll see if I can track down the other bug in commit 97454284

Co-authored-by: Johan Commelin <johan@commelin.net>

Diff
@@ -266,7 +266,7 @@ protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+*
   f
 #align linear_map.simps.apply LinearMap.Simps.apply
 
-initialize_simps_projections LinearMap (toAddHom_toFun → apply)
+initialize_simps_projections LinearMap (toFun → apply)
 
 @[simp]
 theorem coe_mk {σ : R →+* S} (f : AddHom M M₃) (h) :
feat: port LinearAlgebra.Prod (#2415)
Diff
@@ -557,8 +557,6 @@ infixr:80 " ∘ₗ " =>
   @LinearMap.comp _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ (RingHom.id _) (RingHom.id _) (RingHom.id _)
     RingHomCompTriple.ids
 
-include σ₁₃
-
 theorem comp_apply (x : M₁) : f.comp g x = f (g x) :=
   rfl
 #align linear_map.comp_apply LinearMap.comp_apply
feat: port Algebra.Algebra.Basic (#2244)
Diff
@@ -460,15 +460,19 @@ are defined by an action of `R` on `S` (formally, we have two scalar towers), th
 map from `M` to `M₂` is `R`-linear.
 
 See also `LinearMap.map_smul_of_tower`. -/
-def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂
-    where
+@[coe] def restrictScalars (fₗ : M →ₗ[S] M₂) : M →ₗ[R] M₂ where
   toFun := fₗ
   map_add' := fₗ.map_add
   map_smul' := fₗ.map_smul_of_tower
 #align linear_map.restrict_scalars LinearMap.restrictScalars
 
-@[simp]
-theorem coe_restrictScalars (fₗ : M →ₗ[S] M₂) : ⇑(restrictScalars R fₗ) = fₗ :=
+-- porting note: generalized from `Algebra` to `Compatible SMul`
+instance coeIsScalarTower : CoeHTCT (M →ₗ[S] M₂) (M →ₗ[R] M₂) :=
+  ⟨restrictScalars R⟩
+#align linear_map.coe_is_scalar_tower LinearMap.coeIsScalarTower
+
+@[simp, norm_cast]
+theorem coe_restrictScalars (f : M →ₗ[S] M₂) : ((f : M →ₗ[R] M₂) : M → M₂) = f :=
   rfl
 #align linear_map.coe_restrict_scalars LinearMap.coe_restrictScalars
 
refactor: fix LinearMap.coe_mk (#2336)

Co-authored-by: Pol_tta <52843868+Komyyy@users.noreply.github.com>

Diff
@@ -269,11 +269,17 @@ protected def Simps.apply {R S : Type _} [Semiring R] [Semiring S] (σ : R →+*
 initialize_simps_projections LinearMap (toAddHom_toFun → apply)
 
 @[simp]
-theorem coe_mk {σ : R →+* S} (f : M →+ M₃) (h) :
+theorem coe_mk {σ : R →+* S} (f : AddHom M M₃) (h) :
     ((LinearMap.mk f h : M →ₛₗ[σ] M₃) : M → M₃) = f :=
   rfl
 #align linear_map.coe_mk LinearMap.coe_mk
 
+-- Porting note: This theorem is new.
+@[simp]
+theorem coe_addHom_mk {σ : R →+* S} (f : AddHom M M₃) (h) :
+    ((LinearMap.mk f h : M →ₛₗ[σ] M₃) : AddHom M M₃) = f :=
+  rfl
+
 /-- Identity map as a `LinearMap` -/
 def id : M →ₗ[R] M :=
   { DistribMulActionHom.id R with toFun := _root_.id }
fix: fix simp lemmas about coercion to function (#2270)
Diff
@@ -231,9 +231,11 @@ def toDistribMulActionHom (f : M →ₗ[R] M₂) : DistribMulActionHom R M M₂
 #align linear_map.to_distrib_mul_action_hom LinearMap.toDistribMulActionHom
 
 @[simp]
-theorem to_fun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) :=
-  rfl
-#align linear_map.to_fun_eq_coe LinearMap.to_fun_eq_coe
+theorem coe_toAddHom (f : M →ₛₗ[σ] M₃) : ⇑f.toAddHom = f := rfl
+
+-- porting note: no longer a `simp`
+theorem toFun_eq_coe {f : M →ₛₗ[σ] M₃} : f.toFun = (f : M → M₃) := rfl
+#align linear_map.to_fun_eq_coe LinearMap.toFun_eq_coe
 
 @[ext]
 theorem ext {f g : M →ₛₗ[σ] M₃} (h : ∀ x, f x = g x) : f = g :=
docs: Fix copy’n'pasta in Mathlib/Algebra/Module/LinearMap.lean (#2082)
Diff
@@ -5,7 +5,7 @@ Authors: Nathaniel Thomas, Jeremy Avigad, Johannes Hölzl, Mario Carneiro, Anne
   Frédéric Dupuis, Heather Macbeth
 
 ! This file was ported from Lean 3 source module algebra.module.linear_map
-! leanprover-community/mathlib commit 9003f28797c0664a49e4179487267c494477d853
+! leanprover-community/mathlib commit cc8e88c7c8c7bc80f91f84d11adb584bf9bd658f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -933,7 +933,7 @@ theorem comp_neg (f : M →ₛₗ[σ₁₂] N₂) (g : N₂ →ₛₗ[σ₂₃]
   ext fun _ ↦ g.map_neg _
 #align linear_map.comp_neg LinearMap.comp_neg
 
-/-- The negation of a linear map is linear. -/
+/-- The subtraction of two linear maps is linear. -/
 instance : Sub (M →ₛₗ[σ₁₂] N₂) :=
   ⟨fun f g ↦
     { toFun := f - g
chore: add missing #align statements (#1902)

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

  • take all mathlib 3 names, remove _ and make all uppercase letters into lowercase
  • take all mathlib 4 names, remove _ and make all uppercase letters into lowercase
  • look for matches, and create pairs (original_lean3_name, OriginalLean4Name)
  • for pairs that do not have an align statement:
    • use Lean 4 to lookup the file + position of the Lean 4 name
    • add an #align statement just before the next empty line
  • manually fix some tiny mistakes (e.g., empty lines in proofs might cause the #align statement to have been inserted too early)
Diff
@@ -104,6 +104,7 @@ structure LinearMap {R : Type _} {S : Type _} [Semiring R] [Semiring S] (σ : R
 
 /-- The `add_hom` underlying a `LinearMap`. -/
 add_decl_doc LinearMap.toAddHom
+#align linear_map.to_add_hom LinearMap.toAddHom
 
 -- mathport name: «expr →ₛₗ[ ] »
 /-- `M →ₛₗ[σ] N` is the type of `σ`-semilinear maps from `M` to `N`. -/
@@ -518,6 +519,7 @@ def _root_.RingHom.toSemilinearMap (f : R →+* S) : R →ₛₗ[f] S :=
     toFun := f
     map_smul' := f.map_mul }
 #align ring_hom.to_semilinear_map RingHom.toSemilinearMap
+#align ring_hom.to_semilinear_map_apply RingHom.toSemilinearMap_apply
 
 section
 
@@ -639,6 +641,7 @@ letI := compHom S g
   map_add' := g.map_add
   map_smul' := g.map_mul }
 #align module.comp_hom.to_linear_map Module.compHom.toLinearMap
+#align module.comp_hom.to_linear_map_apply Module.compHom.toLinearMap_apply
 
 end Module
 
@@ -1184,6 +1187,7 @@ def toLinearMap (s : S) : M →ₗ[R] M where
   map_add' := smul_add s
   map_smul' _ _ := smul_comm _ _ _
 #align distrib_mul_action.to_linear_map DistribMulAction.toLinearMap
+#align distrib_mul_action.to_linear_map_apply DistribMulAction.toLinearMap_apply
 
 /-- Each element of the monoid defines a module endomorphism.
 
@@ -1195,6 +1199,7 @@ def toModuleEnd : S →* Module.End R M
   map_one' := LinearMap.ext <| one_smul _
   map_mul' _ _ := LinearMap.ext <| mul_smul _ _
 #align distrib_mul_action.to_module_End DistribMulAction.toModuleEnd
+#align distrib_mul_action.to_module_End_apply DistribMulAction.toModuleEnd_apply
 
 end DistribMulAction
 
@@ -1216,6 +1221,7 @@ def toModuleEnd : S →+* Module.End R M :=
     map_zero' := LinearMap.ext <| zero_smul _
     map_add' := fun _ _ ↦ LinearMap.ext <| add_smul _ _ }
 #align module.to_module_End Module.toModuleEnd
+#align module.to_module_End_apply Module.toModuleEnd_apply
 
 /-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `Module.End R R` induced by the right
 multiplication. -/
@@ -1227,6 +1233,7 @@ def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.End R R :=
     left_inv := mul_one
     right_inv := fun _ ↦ LinearMap.ext_ring <| one_mul _ }
 #align module.module_End_self Module.moduleEndSelf
+#align module.module_End_self_apply Module.moduleEndSelf_apply
 
 /-- The canonical (semi)ring isomorphism from `R` to `Module.End Rᵐᵒᵖ R` induced by the left
 multiplication. -/
@@ -1238,6 +1245,8 @@ def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
     left_inv := mul_one
     right_inv := fun _ ↦ LinearMap.ext_ring_op <| mul_one _ }
 #align module.module_End_self_op Module.moduleEndSelfOp
+#align module.module_End_self_op_symm_apply Module.moduleEndSelfOp_symmApply
+#align module.module_End_self_op_apply Module.moduleEndSelfOp_apply
 
 theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
     (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
chore: fix some phantom align statements (#1782)
Diff
@@ -100,7 +100,7 @@ structure LinearMap {R : Type _} {S : Type _} [Semiring R] [Semiring S] (σ : R
   /-- A linear map preserves scalar multiplication.
   We prefer the spelling `_root_.map_smul` instead. -/
   map_smul' : ∀ (r : R) (x : M), toFun (r • x) = σ r • toFun x
-#align LinearMap LinearMap
+#align linear_map LinearMap
 
 /-- The `add_hom` underlying a `LinearMap`. -/
 add_decl_doc LinearMap.toAddHom
fix: undo accidental rename from End to EndCat (#1778)

Also fixes some names in docstrings

Diff
@@ -34,7 +34,7 @@ We then provide `LinearMap` with the following instances:
   corresponding to addition in the codomain
 * `LinearMap.distribMulAction` and `LinearMap.module`: the elementwise scalar action structures
   corresponding to applying the action in the codomain.
-* `module.End.semiring` and `module.End.ring`: the (semi)ring of endomorphisms formed by taking the
+* `Module.End.semiring` and `Module.End.ring`: the (semi)ring of endomorphisms formed by taking the
   additive structure above with composition as multiplication.
 
 ## Implementation notes
@@ -738,10 +738,10 @@ end AddCommGroup
 end IsLinearMap
 
 /-- Linear endomorphisms of a module, with associated ring structure
-`module.End.semiring` and algebra structure `module.End.algebra`. -/
-abbrev Module.EndCat (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] :=
+`Module.End.semiring` and algebra structure `Module.End.algebra`. -/
+abbrev Module.End (R : Type u) (M : Type v) [Semiring R] [AddCommMonoid M] [Module R M] :=
   M →ₗ[R] M
-#align module.End Module.EndCat
+#align module.End Module.End
 
 /-- Reinterpret an additive homomorphism as a `ℕ`-linear map. -/
 def AddMonoidHom.toNatLinearMap [AddCommMonoid M] [AddCommMonoid M₂] (f : M →+ M₂) : M →ₗ[ℕ] M₂
@@ -1020,49 +1020,49 @@ section Endomorphisms
 
 variable [Semiring R] [AddCommMonoid M] [AddCommGroup N₁] [Module R M] [Module R N₁]
 
-instance : One (Module.EndCat R M) :=
+instance : One (Module.End R M) :=
   ⟨LinearMap.id⟩
 
-instance : Mul (Module.EndCat R M) :=
+instance : Mul (Module.End R M) :=
   ⟨LinearMap.comp⟩
 
-theorem one_eq_id : (1 : Module.EndCat R M) = id :=
+theorem one_eq_id : (1 : Module.End R M) = id :=
   rfl
 #align linear_map.one_eq_id LinearMap.one_eq_id
 
-theorem mul_eq_comp (f g : Module.EndCat R M) : f * g = f.comp g :=
+theorem mul_eq_comp (f g : Module.End R M) : f * g = f.comp g :=
   rfl
 #align linear_map.mul_eq_comp LinearMap.mul_eq_comp
 
 @[simp]
-theorem one_apply (x : M) : (1 : Module.EndCat R M) x = x :=
+theorem one_apply (x : M) : (1 : Module.End R M) x = x :=
   rfl
 #align linear_map.one_apply LinearMap.one_apply
 
 @[simp]
-theorem mul_apply (f g : Module.EndCat R M) (x : M) : (f * g) x = f (g x) :=
+theorem mul_apply (f g : Module.End R M) (x : M) : (f * g) x = f (g x) :=
   rfl
 #align linear_map.mul_apply LinearMap.mul_apply
 
-theorem coe_one : ⇑(1 : Module.EndCat R M) = _root_.id :=
+theorem coe_one : ⇑(1 : Module.End R M) = _root_.id :=
   rfl
 #align linear_map.coe_one LinearMap.coe_one
 
-theorem coe_mul (f g : Module.EndCat R M) : ⇑(f * g) = f ∘ g :=
+theorem coe_mul (f g : Module.End R M) : ⇑(f * g) = f ∘ g :=
   rfl
 #align linear_map.coe_mul LinearMap.coe_mul
 
-instance _root_.Module.EndCat.monoid : Monoid (Module.EndCat R M)
+instance _root_.Module.End.monoid : Monoid (Module.End R M)
     where
   mul := (· * ·)
   one := (1 : M →ₗ[R] M)
   mul_assoc f g h := LinearMap.ext fun x ↦ rfl
   mul_one := comp_id
   one_mul := id_comp
-#align module.End.monoid Module.EndCat.monoid
+#align module.End.monoid Module.End.monoid
 
-instance _root_.Module.EndCat.semiring : Semiring (Module.EndCat R M) :=
-  { AddMonoidWithOne.unary, Module.EndCat.monoid, LinearMap.addCommMonoid with
+instance _root_.Module.End.semiring : Semiring (Module.End R M) :=
+  { AddMonoidWithOne.unary, Module.End.monoid, LinearMap.addCommMonoid with
     mul := (· * ·)
     one := (1 : M →ₗ[R] M)
     zero := (0 : M →ₗ[R] M)
@@ -1074,18 +1074,18 @@ instance _root_.Module.EndCat.semiring : Semiring (Module.EndCat R M) :=
     natCast := fun n ↦ n • (1 : M →ₗ[R] M)
     natCast_zero := zero_smul ℕ (1 : M →ₗ[R] M)
     natCast_succ := fun n ↦ (AddMonoid.nsmul_succ n (1 : M →ₗ[R] M)).trans (add_comm _ _) }
-#align module.End.semiring Module.EndCat.semiring
+#align module.End.semiring Module.End.semiring
 
-/-- See also `module.End.nat_cast_def`. -/
+/-- See also `Module.End.natCast_def`. -/
 @[simp]
-theorem _root_.Module.EndCat.natCast_apply (n : ℕ) (m : M) : (↑n : Module.EndCat R M) m = n • m :=
+theorem _root_.Module.End.natCast_apply (n : ℕ) (m : M) : (↑n : Module.End R M) m = n • m :=
   rfl
-#align module.End.nat_cast_apply Module.EndCat.natCast_apply
+#align module.End.nat_cast_apply Module.End.natCast_apply
 
 -- *TODO*: why are you still timing out?
 set_option maxHeartbeats 300000 in
-instance _root_.Module.EndCat.ring : Ring (Module.EndCat R N₁) :=
-  { Module.EndCat.semiring, LinearMap.addCommGroup with
+instance _root_.Module.End.ring : Ring (Module.End R N₁) :=
+  { Module.End.semiring, LinearMap.addCommGroup with
     mul := (· * ·)
     one := (1 : N₁ →ₗ[R] N₁)
     zero := (0 : N₁ →ₗ[R] N₁)
@@ -1093,32 +1093,32 @@ instance _root_.Module.EndCat.ring : Ring (Module.EndCat R N₁) :=
     intCast := fun z ↦ z • (1 : N₁ →ₗ[R] N₁)
     intCast_ofNat := ofNat_zsmul _
     intCast_negSucc := negSucc_zsmul _ }
-#align module.End.ring Module.EndCat.ring
+#align module.End.ring Module.End.ring
 
-/-- See also `module.End.int_cast_def`. -/
+/-- See also `Module.End.intCast_def`. -/
 @[simp]
-theorem _root_.Module.EndCat.intCast_apply (z : ℤ) (m : N₁) : (z : Module.EndCat R N₁) m = z • m :=
+theorem _root_.Module.End.intCast_apply (z : ℤ) (m : N₁) : (z : Module.End R N₁) m = z • m :=
   rfl
-#align module.End.int_cast_apply Module.EndCat.intCast_apply
+#align module.End.int_cast_apply Module.End.intCast_apply
 
 section
 
 variable [Monoid S] [DistribMulAction S M] [SMulCommClass R S M]
 
-instance _root_.Module.EndCat.isScalarTower :
-    IsScalarTower S (Module.EndCat R M) (Module.EndCat R M) :=
+instance _root_.Module.End.isScalarTower :
+    IsScalarTower S (Module.End R M) (Module.End R M) :=
   ⟨smul_comp⟩
-#align module.End.is_scalar_tower Module.EndCat.isScalarTower
+#align module.End.is_scalar_tower Module.End.isScalarTower
 
-instance _root_.Module.EndCat.smulCommClass [SMul S R] [IsScalarTower S R M] :
-    SMulCommClass S (Module.EndCat R M) (Module.EndCat R M) :=
+instance _root_.Module.End.smulCommClass [SMul S R] [IsScalarTower S R M] :
+    SMulCommClass S (Module.End R M) (Module.End R M) :=
   ⟨fun s _ _ ↦ (comp_smul _ s _).symm⟩
-#align module.End.smul_comm_class Module.EndCat.smulCommClass
+#align module.End.smul_comm_class Module.End.smulCommClass
 
-instance _root_.Module.EndCat.smulCommClass' [SMul S R] [IsScalarTower S R M] :
-    SMulCommClass (Module.EndCat R M) S (Module.EndCat R M) :=
+instance _root_.Module.End.smulCommClass' [SMul S R] [IsScalarTower S R M] :
+    SMulCommClass (Module.End R M) S (Module.End R M) :=
   SMulCommClass.symm _ _ _
-#align module.End.smul_comm_class' Module.EndCat.smulCommClass'
+#align module.End.smul_comm_class' Module.End.smulCommClass'
 
 end
 
@@ -1127,8 +1127,8 @@ end
 
 /-- The tautological action by `module.End R M` (aka `M →ₗ[R] M`) on `M`.
 
-This generalizes `function.End.apply_mul_action`. -/
-instance applyModule : Module (Module.EndCat R M) M
+This generalizes `Function.End.applyMulAction`. -/
+instance applyModule : Module (Module.End R M) M
     where
   smul := (· <| ·)
   smul_zero := LinearMap.map_zero
@@ -1140,25 +1140,25 @@ instance applyModule : Module (Module.EndCat R M) M
 #align linear_map.apply_module LinearMap.applyModule
 
 @[simp]
-protected theorem smul_def (f : Module.EndCat R M) (a : M) : f • a = f a :=
+protected theorem smul_def (f : Module.End R M) (a : M) : f • a = f a :=
   rfl
 #align linear_map.smul_def LinearMap.smul_def
 
-/-- `linear_map.apply_module` is faithful. -/
-instance apply_faithfulSMul : FaithfulSMul (Module.EndCat R M) M :=
+/-- `LinearMap.applyModule` is faithful. -/
+instance apply_faithfulSMul : FaithfulSMul (Module.End R M) M :=
   ⟨LinearMap.ext⟩
 #align linear_map.apply_has_faithful_smul LinearMap.apply_faithfulSMul
 
-instance apply_smulCommClass : SMulCommClass R (Module.EndCat R M) M
+instance apply_smulCommClass : SMulCommClass R (Module.End R M) M
     where smul_comm r e m := (e.map_smul r m).symm
 #align linear_map.apply_smul_comm_class LinearMap.apply_smulCommClass
 
-instance apply_smulCommClass' : SMulCommClass (Module.EndCat R M) R M
+instance apply_smulCommClass' : SMulCommClass (Module.End R M) R M
     where smul_comm := LinearMap.map_smul
 #align linear_map.apply_smul_comm_class' LinearMap.apply_smulCommClass'
 
 instance apply_isScalarTower {R M : Type _} [CommSemiring R] [AddCommMonoid M] [Module R M] :
-    IsScalarTower R (Module.EndCat R M) M :=
+    IsScalarTower R (Module.End R M) M :=
   ⟨fun _ _ _ ↦ rfl⟩
 #align linear_map.apply_is_scalar_tower LinearMap.apply_isScalarTower
 
@@ -1177,7 +1177,7 @@ variable [Monoid S] [DistribMulAction S M] [SMulCommClass S R M]
 
 /-- Each element of the monoid defines a linear map.
 
-This is a stronger version of `DistribMulAction.to_add_monoid_hom`. -/
+This is a stronger version of `DistribMulAction.toAddMonoidHom`. -/
 @[simps]
 def toLinearMap (s : S) : M →ₗ[R] M where
   toFun := SMul.smul s
@@ -1187,9 +1187,9 @@ def toLinearMap (s : S) : M →ₗ[R] M where
 
 /-- Each element of the monoid defines a module endomorphism.
 
-This is a stronger version of `DistribMulAction.to_add_monoid_End`. -/
+This is a stronger version of `DistribMulAction.toAddMonoidEnd`. -/
 @[simps]
-def toModuleEnd : S →* Module.EndCat R M
+def toModuleEnd : S →* Module.End R M
     where
   toFun := toLinearMap R M
   map_one' := LinearMap.ext <| one_smul _
@@ -1206,9 +1206,9 @@ variable [Semiring S] [Module S M] [SMulCommClass S R M]
 
 /-- Each element of the semiring defines a module endomorphism.
 
-This is a stronger version of `DistribMulAction.to_module_End`. -/
+This is a stronger version of `DistribMulAction.toModuleEnd`. -/
 @[simps]
-def toModuleEnd : S →+* Module.EndCat R M :=
+def toModuleEnd : S →+* Module.End R M :=
   {
     DistribMulAction.toModuleEnd R
       M with
@@ -1217,10 +1217,10 @@ def toModuleEnd : S →+* Module.EndCat R M :=
     map_add' := fun _ _ ↦ LinearMap.ext <| add_smul _ _ }
 #align module.to_module_End Module.toModuleEnd
 
-/-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `module.End R R` induced by the right
+/-- The canonical (semi)ring isomorphism from `Rᵐᵒᵖ` to `Module.End R R` induced by the right
 multiplication. -/
 @[simps]
-def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.EndCat R R :=
+def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.End R R :=
   { Module.toModuleEnd R R with
     toFun := DistribMulAction.toLinearMap R R
     invFun := fun f ↦ MulOpposite.op (f 1)
@@ -1228,10 +1228,10 @@ def moduleEndSelf : Rᵐᵒᵖ ≃+* Module.EndCat R R :=
     right_inv := fun _ ↦ LinearMap.ext_ring <| one_mul _ }
 #align module.module_End_self Module.moduleEndSelf
 
-/-- The canonical (semi)ring isomorphism from `R` to `module.End Rᵐᵒᵖ R` induced by the left
+/-- The canonical (semi)ring isomorphism from `R` to `Module.End Rᵐᵒᵖ R` induced by the left
 multiplication. -/
 @[simps]
-def moduleEndSelfOp : R ≃+* Module.EndCat Rᵐᵒᵖ R :=
+def moduleEndSelfOp : R ≃+* Module.End Rᵐᵒᵖ R :=
   { Module.toModuleEnd _ _ with
     toFun := DistribMulAction.toLinearMap _ _
     invFun := fun f ↦ f 1
@@ -1239,14 +1239,14 @@ def moduleEndSelfOp : R ≃+* Module.EndCat Rᵐᵒᵖ R :=
     right_inv := fun _ ↦ LinearMap.ext_ring_op <| mul_one _ }
 #align module.module_End_self_op Module.moduleEndSelfOp
 
-theorem EndCat.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
-    (↑n : Module.EndCat R N₁) = Module.toModuleEnd R N₁ n :=
+theorem End.natCast_def (n : ℕ) [AddCommMonoid N₁] [Module R N₁] :
+    (↑n : Module.End R N₁) = Module.toModuleEnd R N₁ n :=
   rfl
-#align module.End.nat_cast_def Module.EndCat.natCast_def
+#align module.End.nat_cast_def Module.End.natCast_def
 
-theorem EndCat.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
-    (z : Module.EndCat R N₁) = Module.toModuleEnd R N₁ z :=
+theorem End.intCast_def (z : ℤ) [AddCommGroup N₁] [Module R N₁] :
+    (z : Module.End R N₁) = Module.toModuleEnd R N₁ z :=
   rfl
-#align module.End.int_cast_def Module.EndCat.intCast_def
+#align module.End.int_cast_def Module.End.intCast_def
 
 end Module
feat: port Algebra.Module.LinearMap (#1587)

Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/algebra.2Emodule.2Elinear_map.20mathlib4.231587

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

Dependencies 3 + 193

194 files ported (98.5%)
74351 lines ported (98.6%)
Show graph

The unported dependencies are