linear_algebra.prodMathlib.LinearAlgebra.Prod

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)

(last sync)

feat(*/prod): prod_prod_prod equivs (#19235)

These send ((a, b), (c, d)) to ((a, c), (b, d)), and this commit provides this bundled as equiv, add_equiv, mul_equiv, ring_equiv, and linear_equiv.

We already have something analogous for tensor_product.

Diff
@@ -227,7 +227,7 @@ def prod_map (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : (M × M₂) →
 
 lemma coe_prod_map (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) :
   ⇑(f.prod_map g) = prod.map f g := rfl
-  
+
 @[simp] theorem prod_map_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) :
   f.prod_map g x = (f x.1, g x.2) := rfl
 
@@ -559,6 +559,28 @@ def prod_comm (R M N : Type*) [semiring R] [add_comm_monoid M] [add_comm_monoid
   map_smul' := λ r ⟨m, n⟩, rfl,
   ..add_equiv.prod_comm }
 
+section
+variables (R M M₂ M₃ M₄)
+variables [semiring R]
+variables [add_comm_monoid M] [add_comm_monoid M₂] [add_comm_monoid M₃] [add_comm_monoid M₄]
+variables [module R M] [module R M₂] [module R M₃] [module R M₄]
+
+/-- Four-way commutativity of `prod`. The name matches `mul_mul_mul_comm`. -/
+@[simps apply]
+def prod_prod_prod_comm : ((M × M₂) × (M₃ × M₄)) ≃ₗ[R] (M × M₃) × (M₂ × M₄) :=
+{ to_fun := λ mnmn, ((mnmn.1.1, mnmn.2.1), (mnmn.1.2, mnmn.2.2)),
+  inv_fun := λ mmnn, ((mmnn.1.1, mmnn.2.1), (mmnn.1.2, mmnn.2.2)),
+  map_smul' := λ c mnmn, rfl,
+  ..add_equiv.prod_prod_prod_comm M M₂ M₃ M₄ }
+
+@[simp] lemma prod_prod_prod_comm_symm :
+  (prod_prod_prod_comm R M M₂ M₃ M₄).symm = prod_prod_prod_comm R M M₃ M₂ M₄ := rfl
+
+@[simp] lemma prod_prod_prod_comm_to_add_equiv :
+  (prod_prod_prod_comm R M M₂ M₃ M₄).to_add_equiv = add_equiv.prod_prod_prod_comm M M₂ M₃ M₄ := rfl
+
+end
+
 section
 
 variables [semiring R]

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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
@@ -664,8 +664,8 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module
     simp only [true_and_iff, mem_range, mem_inf, exists_apply_eq_apply]
     use-z
     rwa [eq_comm, map_neg, ← sub_eq_zero, sub_neg_eq_add]
-  rw [hd.eq_bot, mem_bot] at this 
-  rw [this] at h 
+  rw [hd.eq_bot, mem_bot] at this
+  rw [this] at h
   simpa [this] using h
 #align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_range
 -/
Diff
@@ -143,7 +143,7 @@ theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M
 #print LinearMap.pair_fst_snd /-
 @[simp]
 theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id :=
-  FunLike.coe_injective Pi.prod_fst_snd
+  DFunLike.coe_injective Pi.prod_fst_snd
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
 -/
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
 -/
-import Mathbin.LinearAlgebra.Span
-import Mathbin.Order.PartialSups
-import Mathbin.Algebra.Algebra.Prod
+import LinearAlgebra.Span
+import Order.PartialSups
+import Algebra.Algebra.Prod
 
 #align_import linear_algebra.prod from "leanprover-community/mathlib"@"cd391184c85986113f8c00844cfe6dda1d34be3d"
 
Diff
@@ -662,7 +662,7 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module
   have : f y ∈ f.range ⊓ g.range :=
     by
     simp only [true_and_iff, mem_range, mem_inf, exists_apply_eq_apply]
-    use -z
+    use-z
     rwa [eq_comm, map_neg, ← sub_eq_zero, sub_neg_eq_add]
   rw [hd.eq_bot, mem_bot] at this 
   rw [this] at h 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
-
-! This file was ported from Lean 3 source module linear_algebra.prod
-! leanprover-community/mathlib commit cd391184c85986113f8c00844cfe6dda1d34be3d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.LinearAlgebra.Span
 import Mathbin.Order.PartialSups
 import Mathbin.Algebra.Algebra.Prod
 
+#align_import linear_algebra.prod from "leanprover-community/mathlib"@"cd391184c85986113f8c00844cfe6dda1d34be3d"
+
 /-! ### Products of modules
 
 > THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
Diff
@@ -918,6 +918,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMon
 
 variable [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
 
+#print LinearEquiv.prodProdProdComm /-
 /-- Four-way commutativity of `prod`. The name matches `mul_mul_mul_comm`. -/
 @[simps apply]
 def prodProdProdComm : ((M × M₂) × M₃ × M₄) ≃ₗ[R] (M × M₃) × M₂ × M₄ :=
@@ -928,18 +929,23 @@ def prodProdProdComm : ((M × M₂) × M₃ × M₄) ≃ₗ[R] (M × M₃) × M
     invFun := fun mmnn => ((mmnn.1.1, mmnn.2.1), (mmnn.1.2, mmnn.2.2))
     map_smul' := fun c mnmn => rfl }
 #align linear_equiv.prod_prod_prod_comm LinearEquiv.prodProdProdComm
+-/
 
+#print LinearEquiv.prodProdProdComm_symm /-
 @[simp]
 theorem prodProdProdComm_symm :
     (prodProdProdComm R M M₂ M₃ M₄).symm = prodProdProdComm R M M₃ M₂ M₄ :=
   rfl
 #align linear_equiv.prod_prod_prod_comm_symm LinearEquiv.prodProdProdComm_symm
+-/
 
+#print LinearEquiv.prodProdProdComm_toAddEquiv /-
 @[simp]
 theorem prodProdProdComm_toAddEquiv :
     (prodProdProdComm R M M₂ M₃ M₄).toAddEquiv = AddEquiv.prodProdProdComm M M₂ M₃ M₄ :=
   rfl
 #align linear_equiv.prod_prod_prod_comm_to_add_equiv LinearEquiv.prodProdProdComm_toAddEquiv
+-/
 
 end
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.prod
-! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
+! leanprover-community/mathlib commit cd391184c85986113f8c00844cfe6dda1d34be3d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -910,6 +910,41 @@ def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [
 
 section
 
+variable (R M M₂ M₃ M₄)
+
+variable [Semiring R]
+
+variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
+
+variable [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
+
+/-- Four-way commutativity of `prod`. The name matches `mul_mul_mul_comm`. -/
+@[simps apply]
+def prodProdProdComm : ((M × M₂) × M₃ × M₄) ≃ₗ[R] (M × M₃) × M₂ × M₄ :=
+  {
+    AddEquiv.prodProdProdComm M M₂ M₃
+      M₄ with
+    toFun := fun mnmn => ((mnmn.1.1, mnmn.2.1), (mnmn.1.2, mnmn.2.2))
+    invFun := fun mmnn => ((mmnn.1.1, mmnn.2.1), (mmnn.1.2, mmnn.2.2))
+    map_smul' := fun c mnmn => rfl }
+#align linear_equiv.prod_prod_prod_comm LinearEquiv.prodProdProdComm
+
+@[simp]
+theorem prodProdProdComm_symm :
+    (prodProdProdComm R M M₂ M₃ M₄).symm = prodProdProdComm R M M₃ M₂ M₄ :=
+  rfl
+#align linear_equiv.prod_prod_prod_comm_symm LinearEquiv.prodProdProdComm_symm
+
+@[simp]
+theorem prodProdProdComm_toAddEquiv :
+    (prodProdProdComm R M M₂ M₃ M₄).toAddEquiv = AddEquiv.prodProdProdComm M M₂ M₃ M₄ :=
+  rfl
+#align linear_equiv.prod_prod_prod_comm_to_add_equiv LinearEquiv.prodProdProdComm_toAddEquiv
+
+end
+
+section
+
 variable [Semiring R]
 
 variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
Diff
@@ -68,38 +68,51 @@ section
 
 variable (R M M₂)
 
+#print LinearMap.fst /-
 /-- The first projection of a product is a linear map. -/
 def fst : M × M₂ →ₗ[R] M where
   toFun := Prod.fst
   map_add' x y := rfl
   map_smul' x y := rfl
 #align linear_map.fst LinearMap.fst
+-/
 
+#print LinearMap.snd /-
 /-- The second projection of a product is a linear map. -/
 def snd : M × M₂ →ₗ[R] M₂ where
   toFun := Prod.snd
   map_add' x y := rfl
   map_smul' x y := rfl
 #align linear_map.snd LinearMap.snd
+-/
 
 end
 
+#print LinearMap.fst_apply /-
 @[simp]
 theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
   rfl
 #align linear_map.fst_apply LinearMap.fst_apply
+-/
 
+#print LinearMap.snd_apply /-
 @[simp]
 theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
   rfl
 #align linear_map.snd_apply LinearMap.snd_apply
+-/
 
+#print LinearMap.fst_surjective /-
 theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0), rfl⟩
 #align linear_map.fst_surjective LinearMap.fst_surjective
+-/
 
+#print LinearMap.snd_surjective /-
 theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x), rfl⟩
 #align linear_map.snd_surjective LinearMap.snd_surjective
+-/
 
+#print LinearMap.prod /-
 /-- The prod of two linear maps is a linear map. -/
 @[simps]
 def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M₃
@@ -108,10 +121,13 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
   map_add' x y := by simp only [Pi.prod, Prod.mk_add_mk, map_add]
   map_smul' c x := by simp only [Pi.prod, Prod.smul_mk, map_smul, RingHom.id_apply]
 #align linear_map.prod LinearMap.prod
+-/
 
+#print LinearMap.coe_prod /-
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
 #align linear_map.coe_prod LinearMap.coe_prod
+-/
 
 #print LinearMap.fst_prod /-
 @[simp]
@@ -127,11 +143,14 @@ theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M
 #align linear_map.snd_prod LinearMap.snd_prod
 -/
 
+#print LinearMap.pair_fst_snd /-
 @[simp]
 theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id :=
   FunLike.coe_injective Pi.prod_fst_snd
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
+-/
 
+#print LinearMap.prodEquiv /-
 /-- Taking the product of two maps with the same domain is equivalent to taking the product of
 their codomains.
 
@@ -147,21 +166,27 @@ def prodEquiv [Module S M₂] [Module S M₃] [SMulCommClass R S M₂] [SMulComm
   map_add' a b := rfl
   map_smul' r a := rfl
 #align linear_map.prod_equiv LinearMap.prodEquiv
+-/
 
 section
 
 variable (R M M₂)
 
+#print LinearMap.inl /-
 /-- The left injection into a product is a linear map. -/
 def inl : M →ₗ[R] M × M₂ :=
   prod LinearMap.id 0
 #align linear_map.inl LinearMap.inl
+-/
 
+#print LinearMap.inr /-
 /-- The right injection into a product is a linear map. -/
 def inr : M₂ →ₗ[R] M × M₂ :=
   prod 0 LinearMap.id
 #align linear_map.inr LinearMap.inr
+-/
 
+#print LinearMap.range_inl /-
 theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   by
   ext x
@@ -170,11 +195,15 @@ theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   · rintro ⟨y, rfl⟩; rfl
   · intro h; exact ⟨x.fst, Prod.ext rfl h.symm⟩
 #align linear_map.range_inl LinearMap.range_inl
+-/
 
+#print LinearMap.ker_snd /-
 theorem ker_snd : ker (snd R M M₂) = range (inl R M M₂) :=
   Eq.symm <| range_inl R M M₂
 #align linear_map.ker_snd LinearMap.ker_snd
+-/
 
+#print LinearMap.range_inr /-
 theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   by
   ext x
@@ -183,55 +212,78 @@ theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   · rintro ⟨y, rfl⟩; rfl
   · intro h; exact ⟨x.snd, Prod.ext h.symm rfl⟩
 #align linear_map.range_inr LinearMap.range_inr
+-/
 
+#print LinearMap.ker_fst /-
 theorem ker_fst : ker (fst R M M₂) = range (inr R M M₂) :=
   Eq.symm <| range_inr R M M₂
 #align linear_map.ker_fst LinearMap.ker_fst
+-/
 
 end
 
+#print LinearMap.coe_inl /-
 @[simp]
 theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
   rfl
 #align linear_map.coe_inl LinearMap.coe_inl
+-/
 
+#print LinearMap.inl_apply /-
 theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
   rfl
 #align linear_map.inl_apply LinearMap.inl_apply
+-/
 
+#print LinearMap.coe_inr /-
 @[simp]
 theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
   rfl
 #align linear_map.coe_inr LinearMap.coe_inr
+-/
 
+#print LinearMap.inr_apply /-
 theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) :=
   rfl
 #align linear_map.inr_apply LinearMap.inr_apply
+-/
 
+#print LinearMap.inl_eq_prod /-
 theorem inl_eq_prod : inl R M M₂ = prod LinearMap.id 0 :=
   rfl
 #align linear_map.inl_eq_prod LinearMap.inl_eq_prod
+-/
 
+#print LinearMap.inr_eq_prod /-
 theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id :=
   rfl
 #align linear_map.inr_eq_prod LinearMap.inr_eq_prod
+-/
 
+#print LinearMap.inl_injective /-
 theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 #align linear_map.inl_injective LinearMap.inl_injective
+-/
 
+#print LinearMap.inr_injective /-
 theorem inr_injective : Function.Injective (inr R M M₂) := fun _ => by simp
 #align linear_map.inr_injective LinearMap.inr_injective
+-/
 
+#print LinearMap.coprod /-
 /-- The coprod function `λ x : M × M₂, f x.1 + g x.2` is a linear map. -/
 def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R] M₃ :=
   f.comp (fst _ _ _) + g.comp (snd _ _ _)
 #align linear_map.coprod LinearMap.coprod
+-/
 
+#print LinearMap.coprod_apply /-
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
     coprod f g x = f x.1 + g x.2 :=
   rfl
 #align linear_map.coprod_apply LinearMap.coprod_apply
+-/
 
 #print LinearMap.coprod_inl /-
 @[simp]
@@ -247,29 +299,40 @@ theorem coprod_inr (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (coprod f
 #align linear_map.coprod_inr LinearMap.coprod_inr
 -/
 
+#print LinearMap.coprod_inl_inr /-
 @[simp]
 theorem coprod_inl_inr : coprod (inl R M M₂) (inr R M M₂) = LinearMap.id := by
   ext <;>
     simp only [Prod.mk_add_mk, add_zero, id_apply, coprod_apply, inl_apply, inr_apply, zero_add]
 #align linear_map.coprod_inl_inr LinearMap.coprod_inl_inr
+-/
 
+#print LinearMap.comp_coprod /-
 theorem comp_coprod (f : M₃ →ₗ[R] M₄) (g₁ : M →ₗ[R] M₃) (g₂ : M₂ →ₗ[R] M₃) :
     f.comp (g₁.coprod g₂) = (f.comp g₁).coprod (f.comp g₂) :=
   ext fun x => f.map_add (g₁ x.1) (g₂ x.2)
 #align linear_map.comp_coprod LinearMap.comp_coprod
+-/
 
+#print LinearMap.fst_eq_coprod /-
 theorem fst_eq_coprod : fst R M M₂ = coprod LinearMap.id 0 := by ext <;> simp
 #align linear_map.fst_eq_coprod LinearMap.fst_eq_coprod
+-/
 
+#print LinearMap.snd_eq_coprod /-
 theorem snd_eq_coprod : snd R M M₂ = coprod 0 LinearMap.id := by ext <;> simp
 #align linear_map.snd_eq_coprod LinearMap.snd_eq_coprod
+-/
 
+#print LinearMap.coprod_comp_prod /-
 @[simp]
 theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f' : M →ₗ[R] M₂) (g' : M →ₗ[R] M₃) :
     (f.coprod g).comp (f'.Prod g') = f.comp f' + g.comp g' :=
   rfl
 #align linear_map.coprod_comp_prod LinearMap.coprod_comp_prod
+-/
 
+#print LinearMap.coprod_map_prod /-
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
     (S' : Submodule R M₂) : (Submodule.prod S S').map (LinearMap.coprod f g) = S.map f ⊔ S'.map g :=
@@ -279,7 +342,9 @@ theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Su
     rw [← Set.image2_add, Set.image2_image_left, Set.image2_image_right]
     exact Set.image_prod fun m m₂ => f m + g m₂
 #align linear_map.coprod_map_prod LinearMap.coprod_map_prod
+-/
 
+#print LinearMap.coprodEquiv /-
 /-- Taking the product of two maps with the same codomain is equivalent to taking the product of
 their domains.
 
@@ -297,12 +362,16 @@ def coprodEquiv [Module S M₃] [SMulCommClass R S M₃] :
   map_smul' r a := by dsimp; ext;
     simp only [smul_add, smul_apply, Prod.smul_snd, Prod.smul_fst, coprod_apply]
 #align linear_map.coprod_equiv LinearMap.coprodEquiv
+-/
 
+#print LinearMap.prod_ext_iff /-
 theorem prod_ext_iff {f g : M × M₂ →ₗ[R] M₃} :
     f = g ↔ f.comp (inl _ _ _) = g.comp (inl _ _ _) ∧ f.comp (inr _ _ _) = g.comp (inr _ _ _) :=
   (coprodEquiv ℕ).symm.Injective.eq_iff.symm.trans Prod.ext_iff
 #align linear_map.prod_ext_iff LinearMap.prod_ext_iff
+-/
 
+#print LinearMap.prod_ext /-
 /--
 Split equality of linear maps from a product into linear maps over each component, to allow `ext`
 to apply lemmas specific to `M →ₗ M₃` and `M₂ →ₗ M₃`.
@@ -313,73 +382,99 @@ theorem prod_ext {f g : M × M₂ →ₗ[R] M₃} (hl : f.comp (inl _ _ _) = g.c
     (hr : f.comp (inr _ _ _) = g.comp (inr _ _ _)) : f = g :=
   prod_ext_iff.2 ⟨hl, hr⟩
 #align linear_map.prod_ext LinearMap.prod_ext
+-/
 
+#print LinearMap.prodMap /-
 /-- `prod.map` of two linear maps. -/
 def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[R] M₃ × M₄ :=
   (f.comp (fst R M M₂)).Prod (g.comp (snd R M M₂))
 #align linear_map.prod_map LinearMap.prodMap
+-/
 
+#print LinearMap.coe_prodMap /-
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
 #align linear_map.coe_prod_map LinearMap.coe_prodMap
+-/
 
+#print LinearMap.prodMap_apply /-
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
   rfl
 #align linear_map.prod_map_apply LinearMap.prodMap_apply
+-/
 
+#print LinearMap.prodMap_comap_prod /-
 theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S : Submodule R M₂)
     (S' : Submodule R M₄) :
     (Submodule.prod S S').comap (LinearMap.prodMap f g) = (S.comap f).Prod (S'.comap g) :=
   SetLike.coe_injective <| Set.preimage_prod_map_prod f g _ _
 #align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prod
+-/
 
+#print LinearMap.ker_prodMap /-
 theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
     (LinearMap.prodMap f g).ker = Submodule.prod f.ker g.ker :=
   by
   dsimp only [ker]
   rw [← prod_map_comap_prod, Submodule.prod_bot]
 #align linear_map.ker_prod_map LinearMap.ker_prodMap
+-/
 
+#print LinearMap.prodMap_id /-
 @[simp]
 theorem prodMap_id : (id : M →ₗ[R] M).Prod_map (id : M₂ →ₗ[R] M₂) = id :=
   LinearMap.ext fun _ => Prod.mk.eta
 #align linear_map.prod_map_id LinearMap.prodMap_id
+-/
 
+#print LinearMap.prodMap_one /-
 @[simp]
 theorem prodMap_one : (1 : M →ₗ[R] M).Prod_map (1 : M₂ →ₗ[R] M₂) = 1 :=
   LinearMap.ext fun _ => Prod.mk.eta
 #align linear_map.prod_map_one LinearMap.prodMap_one
+-/
 
+#print LinearMap.prodMap_comp /-
 theorem prodMap_comp (f₁₂ : M →ₗ[R] M₂) (f₂₃ : M₂ →ₗ[R] M₃) (g₁₂ : M₄ →ₗ[R] M₅)
     (g₂₃ : M₅ →ₗ[R] M₆) :
     f₂₃.Prod_map g₂₃ ∘ₗ f₁₂.Prod_map g₁₂ = (f₂₃ ∘ₗ f₁₂).Prod_map (g₂₃ ∘ₗ g₁₂) :=
   rfl
 #align linear_map.prod_map_comp LinearMap.prodMap_comp
+-/
 
+#print LinearMap.prodMap_mul /-
 theorem prodMap_mul (f₁₂ : M →ₗ[R] M) (f₂₃ : M →ₗ[R] M) (g₁₂ : M₂ →ₗ[R] M₂) (g₂₃ : M₂ →ₗ[R] M₂) :
     f₂₃.Prod_map g₂₃ * f₁₂.Prod_map g₁₂ = (f₂₃ * f₁₂).Prod_map (g₂₃ * g₁₂) :=
   rfl
 #align linear_map.prod_map_mul LinearMap.prodMap_mul
+-/
 
+#print LinearMap.prodMap_add /-
 theorem prodMap_add (f₁ : M →ₗ[R] M₃) (f₂ : M →ₗ[R] M₃) (g₁ : M₂ →ₗ[R] M₄) (g₂ : M₂ →ₗ[R] M₄) :
     (f₁ + f₂).Prod_map (g₁ + g₂) = f₁.Prod_map g₁ + f₂.Prod_map g₂ :=
   rfl
 #align linear_map.prod_map_add LinearMap.prodMap_add
+-/
 
+#print LinearMap.prodMap_zero /-
 @[simp]
 theorem prodMap_zero : (0 : M →ₗ[R] M₂).Prod_map (0 : M₃ →ₗ[R] M₄) = 0 :=
   rfl
 #align linear_map.prod_map_zero LinearMap.prodMap_zero
+-/
 
+#print LinearMap.prodMap_smul /-
 @[simp]
 theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄]
     (s : S) (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : prodMap (s • f) (s • g) = s • prodMap f g :=
   rfl
 #align linear_map.prod_map_smul LinearMap.prodMap_smul
+-/
 
 variable (R M M₂ M₃ M₄)
 
+#print LinearMap.prodMapLinear /-
 /-- `linear_map.prod_map` as a `linear_map` -/
 @[simps]
 def prodMapLinear [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄] :
@@ -389,7 +484,9 @@ def prodMapLinear [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMul
   map_add' _ _ := rfl
   map_smul' _ _ := rfl
 #align linear_map.prod_map_linear LinearMap.prodMapLinear
+-/
 
+#print LinearMap.prodMapRingHom /-
 /-- `linear_map.prod_map` as a `ring_hom` -/
 @[simps]
 def prodMapRingHom : (M →ₗ[R] M) × (M₂ →ₗ[R] M₂) →+* M × M₂ →ₗ[R] M × M₂
@@ -400,6 +497,7 @@ def prodMapRingHom : (M →ₗ[R] M) × (M₂ →ₗ[R] M₂) →+* M × M₂ 
   map_add' _ _ := rfl
   map_mul' _ _ := rfl
 #align linear_map.prod_map_ring_hom LinearMap.prodMapRingHom
+-/
 
 variable {R M M₂ M₃ M₄}
 
@@ -409,15 +507,19 @@ variable {A : Type _} [NonUnitalNonAssocSemiring A] [Module R A]
 
 variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 
+#print LinearMap.inl_map_mul /-
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
   Prod.ext rfl (by simp)
 #align linear_map.inl_map_mul LinearMap.inl_map_mul
+-/
 
+#print LinearMap.inr_map_mul /-
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
   Prod.ext (by simp) rfl
 #align linear_map.inr_map_mul LinearMap.inr_map_mul
+-/
 
 end map_mul
 
@@ -435,11 +537,13 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
+#print LinearMap.prodMapAlgHom /-
 /-- `linear_map.prod_map` as an `algebra_hom` -/
 @[simps]
 def prodMapAlgHom : Module.End R M × Module.End R M₂ →ₐ[R] Module.End R (M × M₂) :=
   { prodMapRingHom R M M₂ with commutes' := fun _ => rfl }
 #align linear_map.prod_map_alg_hom LinearMap.prodMapAlgHom
+-/
 
 end LinearMap
 
@@ -450,10 +554,13 @@ open Submodule
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
 
+#print LinearMap.range_coprod /-
 theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.coprod g).range = f.range ⊔ g.range :=
   Submodule.ext fun x => by simp [mem_sup]
 #align linear_map.range_coprod LinearMap.range_coprod
+-/
 
+#print LinearMap.isCompl_range_inl_inr /-
 theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).range :=
   by
   constructor
@@ -467,16 +574,22 @@ theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).rang
     refine' ⟨(x, 0), ⟨x, rfl⟩, (0, y), ⟨y, rfl⟩, _⟩
     simp
 #align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inr
+-/
 
+#print LinearMap.sup_range_inl_inr /-
 theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤ :=
   IsCompl.sup_eq_top isCompl_range_inl_inr
 #align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inr
+-/
 
+#print LinearMap.disjoint_inl_inr /-
 theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range := by
   simp (config := { contextual := true }) [disjoint_def, @eq_comm M 0, @eq_comm M₂ 0] <;> intros <;>
     rfl
 #align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inr
+-/
 
+#print LinearMap.map_coprod_prod /-
 theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Submodule R M)
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
   by
@@ -486,6 +599,7 @@ theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Su
   · exact fun x hx => ⟨(x, 0), by simp [hx]⟩
   · exact fun x hx => ⟨(0, x), by simp [hx]⟩
 #align linear_map.map_coprod_prod LinearMap.map_coprod_prod
+-/
 
 #print LinearMap.comap_prod_prod /-
 theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submodule R M₂)
@@ -494,26 +608,35 @@ theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submo
 #align linear_map.comap_prod_prod LinearMap.comap_prod_prod
 -/
 
+#print LinearMap.prod_eq_inf_comap /-
 theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.comap (LinearMap.fst R M M₂) ⊓ q.comap (LinearMap.snd R M M₂) :=
   Submodule.ext fun x => Iff.rfl
 #align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comap
+-/
 
+#print LinearMap.prod_eq_sup_map /-
 theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.map (LinearMap.inl R M M₂) ⊔ q.map (LinearMap.inr R M M₂) := by
   rw [← map_coprod_prod, coprod_inl_inr, map_id]
 #align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_map
+-/
 
+#print LinearMap.span_inl_union_inr /-
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
   rw [span_union, prod_eq_sup_map, ← span_image, ← span_image]
 #align linear_map.span_inl_union_inr LinearMap.span_inl_union_inr
+-/
 
+#print LinearMap.ker_prod /-
 @[simp]
 theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g) = ker f ⊓ ker g := by
   rw [ker, ← prod_bot, comap_prod_prod] <;> rfl
 #align linear_map.ker_prod LinearMap.ker_prod
+-/
 
+#print LinearMap.range_prod_le /-
 theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
     range (prod f g) ≤ (range f).Prod (range g) :=
   by
@@ -521,13 +644,17 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
   rintro _ x rfl
   exact ⟨⟨x, rfl⟩, ⟨x, rfl⟩⟩
 #align linear_map.range_prod_le LinearMap.range_prod_le
+-/
 
+#print LinearMap.ker_prod_ker_le_ker_coprod /-
 theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
     (ker f).Prod (ker g) ≤ ker (f.coprod g) := by rintro ⟨y, z⟩;
   simp (config := { contextual := true })
 #align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprod
+-/
 
+#print LinearMap.ker_coprod_of_disjoint_range /-
 theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
     (hd : Disjoint f.range g.range) : ker (f.coprod g) = (ker f).Prod (ker g) :=
@@ -544,6 +671,7 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module
   rw [this] at h 
   simpa [this] using h
 #align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_range
+-/
 
 end LinearMap
 
@@ -557,29 +685,39 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
+#print Submodule.sup_eq_range /-
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
 #align submodule.sup_eq_range Submodule.sup_eq_range
+-/
 
 variable (p : Submodule R M) (q : Submodule R M₂)
 
+#print Submodule.map_inl /-
 @[simp]
 theorem map_inl : p.map (inl R M M₂) = prod p ⊥ := by ext ⟨x, y⟩;
   simp only [and_left_comm, eq_comm, mem_map, Prod.mk.inj_iff, inl_apply, mem_bot, exists_eq_left',
     mem_prod]
 #align submodule.map_inl Submodule.map_inl
+-/
 
+#print Submodule.map_inr /-
 @[simp]
 theorem map_inr : q.map (inr R M M₂) = prod ⊥ q := by ext ⟨x, y⟩ <;> simp [and_left_comm, eq_comm]
 #align submodule.map_inr Submodule.map_inr
+-/
 
+#print Submodule.comap_fst /-
 @[simp]
 theorem comap_fst : p.comap (fst R M M₂) = prod p ⊤ := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_fst Submodule.comap_fst
+-/
 
+#print Submodule.comap_snd /-
 @[simp]
 theorem comap_snd : q.comap (snd R M M₂) = prod ⊤ q := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_snd Submodule.comap_snd
+-/
 
 #print Submodule.prod_comap_inl /-
 @[simp]
@@ -607,29 +745,40 @@ theorem prod_map_snd : (prod p q).map (snd R M M₂) = q := by
 #align submodule.prod_map_snd Submodule.prod_map_snd
 -/
 
+#print Submodule.ker_inl /-
 @[simp]
 theorem ker_inl : (inl R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inl]
 #align submodule.ker_inl Submodule.ker_inl
+-/
 
+#print Submodule.ker_inr /-
 @[simp]
 theorem ker_inr : (inr R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inr]
 #align submodule.ker_inr Submodule.ker_inr
+-/
 
+#print Submodule.range_fst /-
 @[simp]
 theorem range_fst : (fst R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_fst]
 #align submodule.range_fst Submodule.range_fst
+-/
 
+#print Submodule.range_snd /-
 @[simp]
 theorem range_snd : (snd R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_snd]
 #align submodule.range_snd Submodule.range_snd
+-/
 
 variable (R M M₂)
 
+#print Submodule.fst /-
 /-- `M` as a submodule of `M × N`. -/
 def fst : Submodule R (M × M₂) :=
   (⊥ : Submodule R M₂).comap (LinearMap.snd R M M₂)
 #align submodule.fst Submodule.fst
+-/
 
+#print Submodule.fstEquiv /-
 /-- `M` as a submodule of `M × N` is isomorphic to `M`. -/
 @[simps]
 def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M
@@ -641,18 +790,26 @@ def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M
   left_inv := by tidy
   right_inv := by tidy
 #align submodule.fst_equiv Submodule.fstEquiv
+-/
 
+#print Submodule.fst_map_fst /-
 theorem fst_map_fst : (Submodule.fst R M M₂).map (LinearMap.fst R M M₂) = ⊤ := by tidy
 #align submodule.fst_map_fst Submodule.fst_map_fst
+-/
 
+#print Submodule.fst_map_snd /-
 theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ := by tidy; exact 0
 #align submodule.fst_map_snd Submodule.fst_map_snd
+-/
 
+#print Submodule.snd /-
 /-- `N` as a submodule of `M × N`. -/
 def snd : Submodule R (M × M₂) :=
   (⊥ : Submodule R M).comap (LinearMap.fst R M M₂)
 #align submodule.snd Submodule.snd
+-/
 
+#print Submodule.sndEquiv /-
 /-- `N` as a submodule of `M × N` is isomorphic to `N`. -/
 @[simps]
 def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂
@@ -664,13 +821,19 @@ def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂
   left_inv := by tidy
   right_inv := by tidy
 #align submodule.snd_equiv Submodule.sndEquiv
+-/
 
+#print Submodule.snd_map_fst /-
 theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ := by tidy; exact 0
 #align submodule.snd_map_fst Submodule.snd_map_fst
+-/
 
+#print Submodule.snd_map_snd /-
 theorem snd_map_snd : (Submodule.snd R M M₂).map (LinearMap.snd R M M₂) = ⊤ := by tidy
 #align submodule.snd_map_snd Submodule.snd_map_snd
+-/
 
+#print Submodule.fst_sup_snd /-
 theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   by
   rw [eq_top_iff]
@@ -680,10 +843,14 @@ theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   · exact Submodule.mem_sup_left (submodule.mem_comap.mpr (by simp))
   · exact Submodule.mem_sup_right (submodule.mem_comap.mpr (by simp))
 #align submodule.fst_sup_snd Submodule.fst_sup_snd
+-/
 
+#print Submodule.fst_inf_snd /-
 theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ := by tidy
 #align submodule.fst_inf_snd Submodule.fst_inf_snd
+-/
 
+#print Submodule.le_prod_iff /-
 theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     q ≤ p₁.Prod p₂ ↔ map (LinearMap.fst R M M₂) q ≤ p₁ ∧ map (LinearMap.snd R M M₂) q ≤ p₂ :=
   by
@@ -694,7 +861,9 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
     · rintro x ⟨⟨y1, y2⟩, ⟨hy1, rfl⟩⟩; exact (h hy1).2
   · rintro ⟨hH, hK⟩ ⟨x1, x2⟩ h; exact ⟨hH ⟨_, h, rfl⟩, hK ⟨_, h, rfl⟩⟩
 #align submodule.le_prod_iff Submodule.le_prod_iff
+-/
 
+#print Submodule.prod_le_iff /-
 theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     p₁.Prod p₂ ≤ q ↔ map (LinearMap.inl R M M₂) p₁ ≤ q ∧ map (LinearMap.inr R M M₂) p₂ ≤ q :=
   by
@@ -708,21 +877,27 @@ theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
     have h2' : (LinearMap.inr R _ _) x2 ∈ q := by apply hK; simpa using h2
     simpa using add_mem h1' h2'
 #align submodule.prod_le_iff Submodule.prod_le_iff
+-/
 
+#print Submodule.prod_eq_bot_iff /-
 theorem prod_eq_bot_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} :
     p₁.Prod p₂ = ⊥ ↔ p₁ = ⊥ ∧ p₂ = ⊥ := by
   simp only [eq_bot_iff, prod_le_iff, (gc_map_comap _).le_iff_le, comap_bot, ker_inl, ker_inr]
 #align submodule.prod_eq_bot_iff Submodule.prod_eq_bot_iff
+-/
 
+#print Submodule.prod_eq_top_iff /-
 theorem prod_eq_top_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} :
     p₁.Prod p₂ = ⊤ ↔ p₁ = ⊤ ∧ p₂ = ⊤ := by
   simp only [eq_top_iff, le_prod_iff, ← (gc_map_comap _).le_iff_le, map_top, range_fst, range_snd]
 #align submodule.prod_eq_top_iff Submodule.prod_eq_top_iff
+-/
 
 end Submodule
 
 namespace LinearEquiv
 
+#print LinearEquiv.prodComm /-
 /-- Product of modules is commutative up to linear isomorphism. -/
 @[simps apply]
 def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M]
@@ -731,6 +906,7 @@ def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [
     toFun := Prod.swap
     map_smul' := fun r ⟨m, n⟩ => rfl }
 #align linear_equiv.prod_comm LinearEquiv.prodComm
+-/
 
 section
 
@@ -744,26 +920,34 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
+#print LinearEquiv.prod /-
 /-- Product of linear equivalences; the maps come from `equiv.prod_congr`. -/
 protected def prod : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
   { e₁.toAddEquiv.prodCongr e₂.toAddEquiv with
     map_smul' := fun c x => Prod.ext (e₁.map_smulₛₗ c _) (e₂.map_smulₛₗ c _) }
 #align linear_equiv.prod LinearEquiv.prod
+-/
 
+#print LinearEquiv.prod_symm /-
 theorem prod_symm : (e₁.Prod e₂).symm = e₁.symm.Prod e₂.symm :=
   rfl
 #align linear_equiv.prod_symm LinearEquiv.prod_symm
+-/
 
+#print LinearEquiv.prod_apply /-
 @[simp]
 theorem prod_apply (p) : e₁.Prod e₂ p = (e₁ p.1, e₂ p.2) :=
   rfl
 #align linear_equiv.prod_apply LinearEquiv.prod_apply
+-/
 
+#print LinearEquiv.coe_prod /-
 @[simp, norm_cast]
 theorem coe_prod :
     (e₁.Prod e₂ : M × M₃ →ₗ[R] M₂ × M₄) = (e₁ : M →ₗ[R] M₂).Prod_map (e₂ : M₃ →ₗ[R] M₄) :=
   rfl
 #align linear_equiv.coe_prod LinearEquiv.coe_prod
+-/
 
 end
 
@@ -779,6 +963,7 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
+#print LinearEquiv.skewProd /-
 /-- Equivalence given by a block lower diagonal matrix. `e₁` and `e₂` are diagonal square blocks,
   and `f` is a rectangular block below the diagonal. -/
 protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
@@ -792,17 +977,22 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
     left_inv := fun p => by simp
     right_inv := fun p => by simp }
 #align linear_equiv.skew_prod LinearEquiv.skewProd
+-/
 
+#print LinearEquiv.skewProd_apply /-
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
   rfl
 #align linear_equiv.skew_prod_apply LinearEquiv.skewProd_apply
+-/
 
+#print LinearEquiv.skewProd_symm_apply /-
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
     (e₁.skewProd e₂ f).symm x = (e₁.symm x.1, e₂.symm (x.2 - f (e₁.symm x.1))) :=
   rfl
 #align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_apply
+-/
 
 end
 
@@ -818,6 +1008,7 @@ variable [AddCommGroup M] [AddCommGroup M₂] [AddCommGroup M₃]
 
 variable [Module R M] [Module R M₂] [Module R M₃]
 
+#print LinearMap.range_prod_eq /-
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
 theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f ⊔ ker g = ⊤) :
@@ -834,6 +1025,7 @@ theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f 
   · simp only [mem_ker.mp hx', map_add, zero_add]
   · simp [← eq_sub_iff_add_eq.1 H, map_add, add_left_inj, self_eq_add_right, mem_ker.mp hy']
 #align linear_map.range_prod_eq LinearMap.range_prod_eq
+-/
 
 end LinearMap
 
@@ -868,17 +1060,21 @@ variable {N : Type _} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N
 
 open Function
 
+#print LinearMap.tunnelAux /-
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
 followed by the inclusion of this submodule back into `M`. -/
 def tunnelAux (f : M × N →ₗ[R] M) (Kφ : Σ K : Submodule R M, K ≃ₗ[R] M) : M × N →ₗ[R] M :=
   (Kφ.1.Subtype.comp Kφ.2.symm.toLinearMap).comp f
 #align linear_map.tunnel_aux LinearMap.tunnelAux
+-/
 
+#print LinearMap.tunnelAux_injective /-
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : Σ K : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
   (Subtype.val_injective.comp Kφ.2.symm.Injective).comp i
 #align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injective
+-/
 
 noncomputable section
 
@@ -893,6 +1089,7 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
         (Submodule.fstEquiv R M N)⟩
 #align linear_map.tunnel' LinearMap.tunnel'ₓ
 
+#print LinearMap.tunnel /-
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
 -/
@@ -903,20 +1100,26 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
       rw [Submodule.map_comp, Submodule.map_comp]
       apply Submodule.map_subtype_le⟩
 #align linear_map.tunnel LinearMap.tunnel
+-/
 
+#print LinearMap.tailing /-
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
 -/
 def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M :=
   (Submodule.snd R M N).map (tunnelAux f (tunnel' f i n))
 #align linear_map.tailing LinearMap.tailing
+-/
 
+#print LinearMap.tailingLinearEquiv /-
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
   ((Submodule.snd R M N).equivMapOfInjective _ (tunnelAux_injective f i (tunnel' f i n))).symm.trans
     (Submodule.sndEquiv R M N)
 #align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquiv
+-/
 
+#print LinearMap.tailing_le_tunnel /-
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
   by
@@ -924,7 +1127,9 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
   rw [Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
+-/
 
+#print LinearMap.tailing_disjoint_tunnel_succ /-
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -934,7 +1139,9 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
     Submodule.comap_map_eq_of_injective (tunnel_aux_injective _ i _), inf_comm,
     Submodule.fst_inf_snd, Submodule.map_bot]
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
+-/
 
+#print LinearMap.tailing_sup_tunnel_succ_le_tunnel /-
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
   by
@@ -942,22 +1149,30 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
   rw [← Submodule.map_sup, sup_comm, Submodule.fst_sup_snd, Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnel
+-/
 
+#print LinearMap.tailings /-
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
   partialSups (tailing f i)
 #align linear_map.tailings LinearMap.tailings
+-/
 
+#print LinearMap.tailings_zero /-
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
   simp [tailings]
 #align linear_map.tailings_zero LinearMap.tailings_zero
+-/
 
+#print LinearMap.tailings_succ /-
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailings f i (n + 1) = tailings f i n ⊔ tailing f i (n + 1) := by simp [tailings]
 #align linear_map.tailings_succ LinearMap.tailings_succ
+-/
 
+#print LinearMap.tailings_disjoint_tunnel /-
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -970,11 +1185,14 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
     apply Disjoint.mono_right _ ih
     apply tailing_sup_tunnel_succ_le_tunnel
 #align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnel
+-/
 
+#print LinearMap.tailings_disjoint_tailing /-
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
   Disjoint.mono_right (tailing_le_tunnel f i _) (tailings_disjoint_tunnel f i _)
 #align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailing
+-/
 
 end Tunnel
 
@@ -983,6 +1201,7 @@ section Graph
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommGroup M₃] [AddCommGroup M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄] (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄)
 
+#print LinearMap.graph /-
 /-- Graph of a linear map. -/
 def graph : Submodule R (M × M₂)
     where
@@ -996,24 +1215,31 @@ def graph : Submodule R (M × M₂)
     change _ • _ = f (_ • _)
     rw [map_smul, hx]
 #align linear_map.graph LinearMap.graph
+-/
 
+#print LinearMap.mem_graph_iff /-
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
   Iff.rfl
 #align linear_map.mem_graph_iff LinearMap.mem_graph_iff
+-/
 
+#print LinearMap.graph_eq_ker_coprod /-
 theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
   by
   ext x
   change _ = _ ↔ -g x.1 + x.2 = _
   rw [add_comm, add_neg_eq_zero]
 #align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprod
+-/
 
+#print LinearMap.graph_eq_range_prod /-
 theorem graph_eq_range_prod : f.graph = (LinearMap.id.Prod f).range :=
   by
   ext x
   exact ⟨fun hx => ⟨x.1, Prod.ext rfl hx.symm⟩, fun ⟨u, hu⟩ => hu ▸ rfl⟩
 #align linear_map.graph_eq_range_prod LinearMap.graph_eq_range_prod
+-/
 
 end Graph
 
Diff
@@ -986,7 +986,7 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommGroup M₃]
 /-- Graph of a linear map. -/
 def graph : Submodule R (M × M₂)
     where
-  carrier := { p | p.2 = f p.1 }
+  carrier := {p | p.2 = f p.1}
   add_mem' a b (ha : _ = _) (hb : _ = _) :=
     by
     change _ + _ = f (_ + _)
Diff
@@ -459,7 +459,7 @@ theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).rang
   constructor
   · rw [disjoint_def]
     rintro ⟨_, _⟩ ⟨x, hx⟩ ⟨y, hy⟩
-    simp only [Prod.ext_iff, inl_apply, inr_apply, mem_bot] at hx hy⊢
+    simp only [Prod.ext_iff, inl_apply, inr_apply, mem_bot] at hx hy ⊢
     exact ⟨hy.1.symm, hx.2.symm⟩
   · rw [codisjoint_iff_le_sup]
     rintro ⟨x, y⟩ -
@@ -534,14 +534,14 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module
   by
   apply le_antisymm _ (ker_prod_ker_le_ker_coprod f g)
   rintro ⟨y, z⟩ h
-  simp only [mem_ker, mem_prod, coprod_apply] at h⊢
+  simp only [mem_ker, mem_prod, coprod_apply] at h ⊢
   have : f y ∈ f.range ⊓ g.range :=
     by
     simp only [true_and_iff, mem_range, mem_inf, exists_apply_eq_apply]
     use -z
     rwa [eq_comm, map_neg, ← sub_eq_zero, sub_neg_eq_add]
-  rw [hd.eq_bot, mem_bot] at this
-  rw [this] at h
+  rw [hd.eq_bot, mem_bot] at this 
+  rw [this] at h 
   simpa [this] using h
 #align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_range
 
@@ -871,12 +871,12 @@ open Function
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
 followed by the inclusion of this submodule back into `M`. -/
-def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : M × N →ₗ[R] M :=
+def tunnelAux (f : M × N →ₗ[R] M) (Kφ : Σ K : Submodule R M, K ≃ₗ[R] M) : M × N →ₗ[R] M :=
   (Kφ.1.Subtype.comp Kφ.2.symm.toLinearMap).comp f
 #align linear_map.tunnel_aux LinearMap.tunnelAux
 
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
-    (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
+    (Kφ : Σ K : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
   (Subtype.val_injective.comp Kφ.2.symm.Injective).comp i
 #align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injective
 
@@ -885,7 +885,7 @@ noncomputable section
 -- Even though we have `noncomputable theory`,
 -- we get an error without another `noncomputable` here.
 /-- Auxiliary definition for `tunnel`. -/
-noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → ΣK : Submodule R M, K ≃ₗ[R] M
+noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Σ K : Submodule R M, K ≃ₗ[R] M
   | 0 => ⟨⊤, LinearEquiv.ofTop ⊤ rfl⟩
   | n + 1 =>
     ⟨(Submodule.fst R M N).map (tunnelAux f (tunnel' n)),
Diff
@@ -68,12 +68,6 @@ section
 
 variable (R M M₂)
 
-/- warning: linear_map.fst -> LinearMap.fst 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9
-Case conversion may be inaccurate. Consider using '#align linear_map.fst LinearMap.fstₓ'. -/
 /-- The first projection of a product is a linear map. -/
 def fst : M × M₂ →ₗ[R] M where
   toFun := Prod.fst
@@ -81,12 +75,6 @@ def fst : M × M₂ →ₗ[R] M where
   map_smul' x y := rfl
 #align linear_map.fst LinearMap.fst
 
-/- warning: linear_map.snd -> LinearMap.snd 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10
-Case conversion may be inaccurate. Consider using '#align linear_map.snd LinearMap.sndₓ'. -/
 /-- The second projection of a product is a linear map. -/
 def snd : M × M₂ →ₗ[R] M₂ where
   toFun := Prod.snd
@@ -96,52 +84,22 @@ def snd : M × M₂ →ₗ[R] M₂ where
 
 end
 
-/- warning: linear_map.fst_apply -> LinearMap.fst_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
-Case conversion may be inaccurate. Consider using '#align linear_map.fst_apply LinearMap.fst_applyₓ'. -/
 @[simp]
 theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
   rfl
 #align linear_map.fst_apply LinearMap.fst_apply
 
-/- warning: linear_map.snd_apply -> LinearMap.snd_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
-Case conversion may be inaccurate. Consider using '#align linear_map.snd_apply LinearMap.snd_applyₓ'. -/
 @[simp]
 theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
   rfl
 #align linear_map.snd_apply LinearMap.snd_apply
 
-/- warning: linear_map.fst_surjective -> LinearMap.fst_surjective 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.fst_surjective LinearMap.fst_surjectiveₓ'. -/
 theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0), rfl⟩
 #align linear_map.fst_surjective LinearMap.fst_surjective
 
-/- warning: linear_map.snd_surjective -> LinearMap.snd_surjective 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.snd_surjective LinearMap.snd_surjectiveₓ'. -/
 theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x), rfl⟩
 #align linear_map.snd_surjective LinearMap.snd_surjective
 
-/- warning: linear_map.prod -> LinearMap.prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _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_3 _inst_4 _inst_9 _inst_10) -> (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _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_3 _inst_4 _inst_9 _inst_10) -> (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod LinearMap.prodₓ'. -/
 /-- The prod of two linear maps is a linear map. -/
 @[simps]
 def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M₃
@@ -151,9 +109,6 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
   map_smul' c x := by simp only [Pi.prod, Prod.smul_mk, map_smul, RingHom.id_apply]
 #align linear_map.prod LinearMap.prod
 
-/- warning: linear_map.coe_prod -> LinearMap.coe_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod LinearMap.coe_prodₓ'. -/
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
 #align linear_map.coe_prod LinearMap.coe_prod
@@ -172,20 +127,11 @@ theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M
 #align linear_map.snd_prod LinearMap.snd_prod
 -/
 
-/- warning: linear_map.pair_fst_snd -> LinearMap.pair_fst_snd 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prod.{u1, max u2 u3, u2, u3} R (Prod.{u2, u3} M M₂) M M₂ _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 _inst_10 (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u2 u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prod.{u1, max u2 u3, u2, u3} R (Prod.{u2, u3} M M₂) M M₂ _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 _inst_10 (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.pair_fst_snd LinearMap.pair_fst_sndₓ'. -/
 @[simp]
 theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id :=
   FunLike.coe_injective Pi.prod_fst_snd
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
 
-/- warning: linear_map.prod_equiv -> LinearMap.prodEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_equiv LinearMap.prodEquivₓ'. -/
 /-- Taking the product of two maps with the same domain is equivalent to taking the product of
 their codomains.
 
@@ -206,34 +152,16 @@ section
 
 variable (R M M₂)
 
-/- warning: linear_map.inl -> LinearMap.inl 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
-Case conversion may be inaccurate. Consider using '#align linear_map.inl LinearMap.inlₓ'. -/
 /-- The left injection into a product is a linear map. -/
 def inl : M →ₗ[R] M × M₂ :=
   prod LinearMap.id 0
 #align linear_map.inl LinearMap.inl
 
-/- warning: linear_map.inr -> LinearMap.inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
-Case conversion may be inaccurate. Consider using '#align linear_map.inr LinearMap.inrₓ'. -/
 /-- The right injection into a product is a linear map. -/
 def inr : M₂ →ₗ[R] M × M₂ :=
   prod 0 LinearMap.id
 #align linear_map.inr LinearMap.inr
 
-/- warning: linear_map.range_inl -> LinearMap.range_inl 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.range_inl LinearMap.range_inlₓ'. -/
 theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   by
   ext x
@@ -243,22 +171,10 @@ theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   · intro h; exact ⟨x.fst, Prod.ext rfl h.symm⟩
 #align linear_map.range_inl LinearMap.range_inl
 
-/- warning: linear_map.ker_snd -> LinearMap.ker_snd 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.ker_snd LinearMap.ker_sndₓ'. -/
 theorem ker_snd : ker (snd R M M₂) = range (inl R M M₂) :=
   Eq.symm <| range_inl R M M₂
 #align linear_map.ker_snd LinearMap.ker_snd
 
-/- warning: linear_map.range_inr -> LinearMap.range_inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.range_inr LinearMap.range_inrₓ'. -/
 theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   by
   ext x
@@ -268,112 +184,49 @@ theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   · intro h; exact ⟨x.snd, Prod.ext h.symm rfl⟩
 #align linear_map.range_inr LinearMap.range_inr
 
-/- warning: linear_map.ker_fst -> LinearMap.ker_fst 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.ker_fst LinearMap.ker_fstₓ'. -/
 theorem ker_fst : ker (fst R M M₂) = range (inr R M M₂) :=
   Eq.symm <| range_inr R M M₂
 #align linear_map.ker_fst LinearMap.ker_fst
 
 end
 
-/- warning: linear_map.coe_inl -> LinearMap.coe_inl 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M 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_4)))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_inl LinearMap.coe_inlₓ'. -/
 @[simp]
 theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
   rfl
 #align linear_map.coe_inl LinearMap.coe_inl
 
-/- warning: linear_map.inl_apply -> LinearMap.inl_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M 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_4)))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
-Case conversion may be inaccurate. Consider using '#align linear_map.inl_apply LinearMap.inl_applyₓ'. -/
 theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
   rfl
 #align linear_map.inl_apply LinearMap.inl_apply
 
-/- warning: linear_map.coe_inr -> LinearMap.coe_inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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_3)))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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 linear_map.coe_inr LinearMap.coe_inrₓ'. -/
 @[simp]
 theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
   rfl
 #align linear_map.coe_inr LinearMap.coe_inr
 
-/- warning: linear_map.inr_apply -> LinearMap.inr_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (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_3)))))) x)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
-Case conversion may be inaccurate. Consider using '#align linear_map.inr_apply LinearMap.inr_applyₓ'. -/
 theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) :=
   rfl
 #align linear_map.inr_apply LinearMap.inr_apply
 
-/- warning: linear_map.inl_eq_prod -> LinearMap.inl_eq_prod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_3 _inst_3 _inst_4 _inst_9 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (OfNat.mk.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.zero.{max u2 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_4 _inst_9 _inst_10) (LinearMap.hasZero.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_3 _inst_3 _inst_4 _inst_9 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u3 u2} (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_4 _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (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_4 _inst_9 _inst_10) (LinearMap.instZeroLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align linear_map.inl_eq_prod LinearMap.inl_eq_prodₓ'. -/
 theorem inl_eq_prod : inl R M M₂ = prod LinearMap.id 0 :=
   rfl
 #align linear_map.inl_eq_prod LinearMap.inl_eq_prod
 
-/- warning: linear_map.inr_eq_prod -> LinearMap.inr_eq_prod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u3, u2, u3} R M₂ M M₂ _inst_1 _inst_4 _inst_3 _inst_4 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (OfNat.mk.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (Zero.zero.{max u3 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_4 _inst_3 _inst_10 _inst_9) (LinearMap.hasZero.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u3, u2, u3} R M₂ M M₂ _inst_1 _inst_4 _inst_3 _inst_4 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M _inst_4 _inst_3 _inst_10 _inst_9) 0 (Zero.toOfNat0.{max u2 u3} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M _inst_4 _inst_3 _inst_10 _inst_9) (LinearMap.instZeroLinearMap.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.inr_eq_prod LinearMap.inr_eq_prodₓ'. -/
 theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id :=
   rfl
 #align linear_map.inr_eq_prod LinearMap.inr_eq_prod
 
-/- warning: linear_map.inl_injective -> LinearMap.inl_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.inl_injective LinearMap.inl_injectiveₓ'. -/
 theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 #align linear_map.inl_injective LinearMap.inl_injective
 
-/- warning: linear_map.inr_injective -> LinearMap.inr_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.inr_injective LinearMap.inr_injectiveₓ'. -/
 theorem inr_injective : Function.Injective (inr R M M₂) := fun _ => by simp
 #align linear_map.inr_injective LinearMap.inr_injective
 
-/- warning: linear_map.coprod -> LinearMap.coprod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_11) -> (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_11) -> (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11)
-Case conversion may be inaccurate. Consider using '#align linear_map.coprod LinearMap.coprodₓ'. -/
 /-- The coprod function `λ x : M × M₂, f x.1 + g x.2` is a linear map. -/
 def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R] M₃ :=
   f.comp (fst _ _ _) + g.comp (snd _ _ _)
 #align linear_map.coprod LinearMap.coprod
 
-/- warning: linear_map.coprod_apply -> LinearMap.coprod_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coprod_apply LinearMap.coprod_applyₓ'. -/
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
     coprod f g x = f x.1 + g x.2 :=
@@ -394,56 +247,29 @@ theorem coprod_inr (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (coprod f
 #align linear_map.coprod_inr LinearMap.coprod_inr
 -/
 
-/- warning: linear_map.coprod_inl_inr -> LinearMap.coprod_inl_inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.coprod.{u1, u2, u3, max u2 u3} R M M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_3 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.coprod.{u1, u2, u3, max u2 u3} R M M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_3 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.coprod_inl_inr LinearMap.coprod_inl_inrₓ'. -/
 @[simp]
 theorem coprod_inl_inr : coprod (inl R M M₂) (inr R M M₂) = LinearMap.id := by
   ext <;>
     simp only [Prod.mk_add_mk, add_zero, id_apply, coprod_apply, inl_apply, inr_apply, zero_add]
 #align linear_map.coprod_inl_inr LinearMap.coprod_inl_inr
 
-/- warning: linear_map.comp_coprod -> LinearMap.comp_coprod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.comp_coprod LinearMap.comp_coprodₓ'. -/
 theorem comp_coprod (f : M₃ →ₗ[R] M₄) (g₁ : M →ₗ[R] M₃) (g₂ : M₂ →ₗ[R] M₃) :
     f.comp (g₁.coprod g₂) = (f.comp g₁).coprod (f.comp g₂) :=
   ext fun x => f.map_add (g₁ x.1) (g₂ x.2)
 #align linear_map.comp_coprod LinearMap.comp_coprod
 
-/- warning: linear_map.fst_eq_coprod -> LinearMap.fst_eq_coprod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u2} R M M₂ M _inst_1 _inst_3 _inst_4 _inst_3 _inst_9 _inst_10 _inst_9 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (OfNat.mk.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (Zero.zero.{max u3 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_4 _inst_3 _inst_10 _inst_9) (LinearMap.hasZero.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u2} R M M₂ M _inst_1 _inst_3 _inst_4 _inst_3 _inst_9 _inst_10 _inst_9 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (Zero.toOfNat0.{max u3 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_4 _inst_3 _inst_10 _inst_9) (LinearMap.instZeroLinearMap.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))
-Case conversion may be inaccurate. Consider using '#align linear_map.fst_eq_coprod LinearMap.fst_eq_coprodₓ'. -/
 theorem fst_eq_coprod : fst R M M₂ = coprod LinearMap.id 0 := by ext <;> simp
 #align linear_map.fst_eq_coprod LinearMap.fst_eq_coprod
 
-/- warning: linear_map.snd_eq_coprod -> LinearMap.snd_eq_coprod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u3} R M M₂ M₂ _inst_1 _inst_3 _inst_4 _inst_4 _inst_9 _inst_10 _inst_10 (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (OfNat.mk.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.zero.{max u2 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_4 _inst_9 _inst_10) (LinearMap.hasZero.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u3} R M M₂ M₂ _inst_1 _inst_3 _inst_4 _inst_4 _inst_9 _inst_10 _inst_10 (OfNat.ofNat.{max u3 u2} (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_4 _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (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_4 _inst_9 _inst_10) (LinearMap.instZeroLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.snd_eq_coprod LinearMap.snd_eq_coprodₓ'. -/
 theorem snd_eq_coprod : snd R M M₂ = coprod 0 LinearMap.id := by ext <;> simp
 #align linear_map.snd_eq_coprod LinearMap.snd_eq_coprod
 
-/- warning: linear_map.coprod_comp_prod -> LinearMap.coprod_comp_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coprod_comp_prod LinearMap.coprod_comp_prodₓ'. -/
 @[simp]
 theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f' : M →ₗ[R] M₂) (g' : M →ₗ[R] M₃) :
     (f.coprod g).comp (f'.Prod g') = f.comp f' + g.comp g' :=
   rfl
 #align linear_map.coprod_comp_prod LinearMap.coprod_comp_prod
 
-/- warning: linear_map.coprod_map_prod -> LinearMap.coprod_map_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coprod_map_prod LinearMap.coprod_map_prodₓ'. -/
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
     (S' : Submodule R M₂) : (Submodule.prod S S').map (LinearMap.coprod f g) = S.map f ⊔ S'.map g :=
@@ -454,9 +280,6 @@ theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Su
     exact Set.image_prod fun m m₂ => f m + g m₂
 #align linear_map.coprod_map_prod LinearMap.coprod_map_prod
 
-/- warning: linear_map.coprod_equiv -> LinearMap.coprodEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coprod_equiv LinearMap.coprodEquivₓ'. -/
 /-- Taking the product of two maps with the same codomain is equivalent to taking the product of
 their domains.
 
@@ -475,17 +298,11 @@ def coprodEquiv [Module S M₃] [SMulCommClass R S M₃] :
     simp only [smul_add, smul_apply, Prod.smul_snd, Prod.smul_fst, coprod_apply]
 #align linear_map.coprod_equiv LinearMap.coprodEquiv
 
-/- warning: linear_map.prod_ext_iff -> LinearMap.prod_ext_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_ext_iff LinearMap.prod_ext_iffₓ'. -/
 theorem prod_ext_iff {f g : M × M₂ →ₗ[R] M₃} :
     f = g ↔ f.comp (inl _ _ _) = g.comp (inl _ _ _) ∧ f.comp (inr _ _ _) = g.comp (inr _ _ _) :=
   (coprodEquiv ℕ).symm.Injective.eq_iff.symm.trans Prod.ext_iff
 #align linear_map.prod_ext_iff LinearMap.prod_ext_iff
 
-/- warning: linear_map.prod_ext -> LinearMap.prod_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_ext LinearMap.prod_extₓ'. -/
 /--
 Split equality of linear maps from a product into linear maps over each component, to allow `ext`
 to apply lemmas specific to `M →ₗ M₃` and `M₂ →ₗ M₃`.
@@ -497,44 +314,26 @@ theorem prod_ext {f g : M × M₂ →ₗ[R] M₃} (hl : f.comp (inl _ _ _) = g.c
   prod_ext_iff.2 ⟨hl, hr⟩
 #align linear_map.prod_ext LinearMap.prod_ext
 
-/- warning: linear_map.prod_map -> LinearMap.prodMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_12) -> (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_12) -> (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map LinearMap.prodMapₓ'. -/
 /-- `prod.map` of two linear maps. -/
 def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[R] M₃ × M₄ :=
   (f.comp (fst R M M₂)).Prod (g.comp (snd R M M₂))
 #align linear_map.prod_map LinearMap.prodMap
 
-/- warning: linear_map.coe_prod_map -> LinearMap.coe_prodMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod_map LinearMap.coe_prodMapₓ'. -/
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
 #align linear_map.coe_prod_map LinearMap.coe_prodMap
 
-/- warning: linear_map.prod_map_apply -> LinearMap.prodMap_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_apply LinearMap.prodMap_applyₓ'. -/
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
   rfl
 #align linear_map.prod_map_apply LinearMap.prodMap_apply
 
-/- warning: linear_map.prod_map_comap_prod -> LinearMap.prodMap_comap_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prodₓ'. -/
 theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S : Submodule R M₂)
     (S' : Submodule R M₄) :
     (Submodule.prod S S').comap (LinearMap.prodMap f g) = (S.comap f).Prod (S'.comap g) :=
   SetLike.coe_injective <| Set.preimage_prod_map_prod f g _ _
 #align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prod
 
-/- warning: linear_map.ker_prod_map -> LinearMap.ker_prodMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_map LinearMap.ker_prodMapₓ'. -/
 theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
     (LinearMap.prodMap f g).ker = Submodule.prod f.ker g.ker :=
   by
@@ -542,64 +341,37 @@ theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
   rw [← prod_map_comap_prod, Submodule.prod_bot]
 #align linear_map.ker_prod_map LinearMap.ker_prodMap
 
-/- warning: linear_map.prod_map_id -> LinearMap.prodMap_id 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_id LinearMap.prodMap_idₓ'. -/
 @[simp]
 theorem prodMap_id : (id : M →ₗ[R] M).Prod_map (id : M₂ →ₗ[R] M₂) = id :=
   LinearMap.ext fun _ => Prod.mk.eta
 #align linear_map.prod_map_id LinearMap.prodMap_id
 
-/- warning: linear_map.prod_map_one -> LinearMap.prodMap_one 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{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_9 _inst_9) 1 (OfNat.mk.{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_9 _inst_9) 1 (One.one.{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_9 _inst_9) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_3 _inst_9)))) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) 1 (OfNat.mk.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) 1 (One.one.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.module.End.hasOne.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))))) (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) 1 (OfNat.mk.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) 1 (One.one.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.module.End.hasOne.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{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_9 _inst_9) 1 (One.toOfNat1.{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_9 _inst_9) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_3 _inst_9))) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) 1 (One.toOfNat1.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.instOneEnd.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)))) (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) 1 (One.toOfNat1.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instOneEnd.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_one LinearMap.prodMap_oneₓ'. -/
 @[simp]
 theorem prodMap_one : (1 : M →ₗ[R] M).Prod_map (1 : M₂ →ₗ[R] M₂) = 1 :=
   LinearMap.ext fun _ => Prod.mk.eta
 #align linear_map.prod_map_one LinearMap.prodMap_one
 
-/- warning: linear_map.prod_map_comp -> LinearMap.prodMap_comp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comp LinearMap.prodMap_compₓ'. -/
 theorem prodMap_comp (f₁₂ : M →ₗ[R] M₂) (f₂₃ : M₂ →ₗ[R] M₃) (g₁₂ : M₄ →ₗ[R] M₅)
     (g₂₃ : M₅ →ₗ[R] M₆) :
     f₂₃.Prod_map g₂₃ ∘ₗ f₁₂.Prod_map g₁₂ = (f₂₃ ∘ₗ f₁₂).Prod_map (g₂₃ ∘ₗ g₁₂) :=
   rfl
 #align linear_map.prod_map_comp LinearMap.prodMap_comp
 
-/- warning: linear_map.prod_map_mul -> LinearMap.prodMap_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_mul LinearMap.prodMap_mulₓ'. -/
 theorem prodMap_mul (f₁₂ : M →ₗ[R] M) (f₂₃ : M →ₗ[R] M) (g₁₂ : M₂ →ₗ[R] M₂) (g₂₃ : M₂ →ₗ[R] M₂) :
     f₂₃.Prod_map g₂₃ * f₁₂.Prod_map g₁₂ = (f₂₃ * f₁₂).Prod_map (g₂₃ * g₁₂) :=
   rfl
 #align linear_map.prod_map_mul LinearMap.prodMap_mul
 
-/- warning: linear_map.prod_map_add -> LinearMap.prodMap_add is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_add LinearMap.prodMap_addₓ'. -/
 theorem prodMap_add (f₁ : M →ₗ[R] M₃) (f₂ : M →ₗ[R] M₃) (g₁ : M₂ →ₗ[R] M₄) (g₂ : M₂ →ₗ[R] M₄) :
     (f₁ + f₂).Prod_map (g₁ + g₂) = f₁.Prod_map g₁ + f₂.Prod_map g₂ :=
   rfl
 #align linear_map.prod_map_add LinearMap.prodMap_add
 
-/- warning: linear_map.prod_map_zero -> LinearMap.prodMap_zero is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_zero LinearMap.prodMap_zeroₓ'. -/
 @[simp]
 theorem prodMap_zero : (0 : M →ₗ[R] M₂).Prod_map (0 : M₃ →ₗ[R] M₄) = 0 :=
   rfl
 #align linear_map.prod_map_zero LinearMap.prodMap_zero
 
-/- warning: linear_map.prod_map_smul -> LinearMap.prodMap_smul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_smul LinearMap.prodMap_smulₓ'. -/
 @[simp]
 theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄]
     (s : S) (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : prodMap (s • f) (s • g) = s • prodMap f g :=
@@ -608,9 +380,6 @@ theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [S
 
 variable (R M M₂ M₃ M₄)
 
-/- warning: linear_map.prod_map_linear -> LinearMap.prodMapLinear is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_linear LinearMap.prodMapLinearₓ'. -/
 /-- `linear_map.prod_map` as a `linear_map` -/
 @[simps]
 def prodMapLinear [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄] :
@@ -621,12 +390,6 @@ def prodMapLinear [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMul
   map_smul' _ _ := rfl
 #align linear_map.prod_map_linear LinearMap.prodMapLinear
 
-/- warning: linear_map.prod_map_ring_hom -> LinearMap.prodMapRingHom 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], RingHom.{max u2 u3, max u2 u3} (Prod.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10)) (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.nonAssocSemiring.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Semiring.toNonAssocSemiring.{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_9 _inst_9) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_3 _inst_9)) (Semiring.toNonAssocSemiring.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Module.End.semiring.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))) (Semiring.toNonAssocSemiring.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], RingHom.{max u3 u2, max u3 u2} (Prod.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10)) (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.instNonAssocSemiringProd.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Semiring.toNonAssocSemiring.{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_9 _inst_9) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_3 _inst_9)) (Semiring.toNonAssocSemiring.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Module.End.semiring.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))) (Semiring.toNonAssocSemiring.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_ring_hom LinearMap.prodMapRingHomₓ'. -/
 /-- `linear_map.prod_map` as a `ring_hom` -/
 @[simps]
 def prodMapRingHom : (M →ₗ[R] M) × (M₂ →ₗ[R] M₂) →+* M × M₂ →ₗ[R] M × M₂
@@ -646,17 +409,11 @@ variable {A : Type _} [NonUnitalNonAssocSemiring A] [Module R A]
 
 variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 
-/- warning: linear_map.inl_map_mul -> LinearMap.inl_map_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.inl_map_mul LinearMap.inl_map_mulₓ'. -/
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
   Prod.ext rfl (by simp)
 #align linear_map.inl_map_mul LinearMap.inl_map_mul
 
-/- warning: linear_map.inr_map_mul -> LinearMap.inr_map_mul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.inr_map_mul LinearMap.inr_map_mulₓ'. -/
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
   Prod.ext (by simp) rfl
@@ -678,12 +435,6 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
-/- warning: linear_map.prod_map_alg_hom -> LinearMap.prodMapAlgHom is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3], AlgHom.{u1, max u2 u3, max u2 u3} R (Prod.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) _inst_1 (Prod.semiring.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.algebra.{u1, u2, u3} R (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) _inst_1 (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.algebra.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.End.algebra.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (Module.End.algebra.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3], AlgHom.{u1, max u3 u2, max u3 u2} R (Prod.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) _inst_1 (Prod.instSemiringProd.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.algebra.{u1, u2, u3} R (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) _inst_1 (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.instAlgebraEndToSemiringSemiring.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.instAlgebraEndToSemiringSemiring.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (Module.instAlgebraEndToSemiringSemiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_alg_hom LinearMap.prodMapAlgHomₓ'. -/
 /-- `linear_map.prod_map` as an `algebra_hom` -/
 @[simps]
 def prodMapAlgHom : Module.End R M × Module.End R M₂ →ₐ[R] Module.End R (M × M₂) :=
@@ -699,19 +450,10 @@ open Submodule
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
 
-/- warning: linear_map.range_coprod -> LinearMap.range_coprod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.range_coprod LinearMap.range_coprodₓ'. -/
 theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.coprod g).range = f.range ⊔ g.range :=
   Submodule.ext fun x => by simp [mem_sup]
 #align linear_map.range_coprod LinearMap.range_coprod
 
-/- warning: linear_map.is_compl_range_inl_inr -> LinearMap.isCompl_range_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
-Case conversion may be inaccurate. Consider using '#align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inrₓ'. -/
 theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).range :=
   by
   constructor
@@ -726,30 +468,15 @@ theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).rang
     simp
 #align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inr
 
-/- warning: linear_map.sup_range_inl_inr -> LinearMap.sup_range_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
-Case conversion may be inaccurate. Consider using '#align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inrₓ'. -/
 theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤ :=
   IsCompl.sup_eq_top isCompl_range_inl_inr
 #align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inr
 
-/- warning: linear_map.disjoint_inl_inr -> LinearMap.disjoint_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Submodule.orderBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
-Case conversion may be inaccurate. Consider using '#align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inrₓ'. -/
 theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range := by
   simp (config := { contextual := true }) [disjoint_def, @eq_comm M 0, @eq_comm M₂ 0] <;> intros <;>
     rfl
 #align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inr
 
-/- warning: linear_map.map_coprod_prod -> LinearMap.map_coprod_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.map_coprod_prod LinearMap.map_coprod_prodₓ'. -/
 theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Submodule R M)
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
   by
@@ -767,50 +494,26 @@ theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submo
 #align linear_map.comap_prod_prod LinearMap.comap_prod_prod
 -/
 
-/- warning: linear_map.prod_eq_inf_comap -> LinearMap.prod_eq_inf_comap 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comapₓ'. -/
 theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.comap (LinearMap.fst R M M₂) ⊓ q.comap (LinearMap.snd R M M₂) :=
   Submodule.ext fun x => Iff.rfl
 #align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comap
 
-/- warning: linear_map.prod_eq_sup_map -> LinearMap.prod_eq_sup_map 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
-Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_mapₓ'. -/
 theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.map (LinearMap.inl R M M₂) ⊔ q.map (LinearMap.inr R M M₂) := by
   rw [← map_coprod_prod, coprod_inl_inr, map_id]
 #align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_map
 
-/- warning: linear_map.span_inl_union_inr -> LinearMap.span_inl_union_inr is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.span_inl_union_inr LinearMap.span_inl_union_inrₓ'. -/
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
   rw [span_union, prod_eq_sup_map, ← span_image, ← span_image]
 #align linear_map.span_inl_union_inr LinearMap.span_inl_union_inr
 
-/- warning: linear_map.ker_prod -> LinearMap.ker_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
-Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod LinearMap.ker_prodₓ'. -/
 @[simp]
 theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g) = ker f ⊓ ker g := by
   rw [ker, ← prod_bot, comap_prod_prod] <;> rfl
 #align linear_map.ker_prod LinearMap.ker_prod
 
-/- warning: linear_map.range_prod_le -> LinearMap.range_prod_le is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_le LinearMap.range_prod_leₓ'. -/
 theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
     range (prod f g) ≤ (range f).Prod (range g) :=
   by
@@ -819,18 +522,12 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
   exact ⟨⟨x, rfl⟩, ⟨x, rfl⟩⟩
 #align linear_map.range_prod_le LinearMap.range_prod_le
 
-/- warning: linear_map.ker_prod_ker_le_ker_coprod -> LinearMap.ker_prod_ker_le_ker_coprod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprodₓ'. -/
 theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
     (ker f).Prod (ker g) ≤ ker (f.coprod g) := by rintro ⟨y, z⟩;
   simp (config := { contextual := true })
 #align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprod
 
-/- warning: linear_map.ker_coprod_of_disjoint_range -> LinearMap.ker_coprod_of_disjoint_range is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_rangeₓ'. -/
 theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
     (hd : Disjoint f.range g.range) : ker (f.coprod g) = (ker f).Prod (ker g) :=
@@ -860,53 +557,26 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
-/- warning: submodule.sup_eq_range -> Submodule.sup_eq_range is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.sup_eq_range Submodule.sup_eq_rangeₓ'. -/
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
 #align submodule.sup_eq_range Submodule.sup_eq_range
 
 variable (p : Submodule R M) (q : Submodule R M₂)
 
-/- warning: submodule.map_inl -> Submodule.map_inl 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
-but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
-Case conversion may be inaccurate. Consider using '#align submodule.map_inl Submodule.map_inlₓ'. -/
 @[simp]
 theorem map_inl : p.map (inl R M M₂) = prod p ⊥ := by ext ⟨x, y⟩;
   simp only [and_left_comm, eq_comm, mem_map, Prod.mk.inj_iff, inl_apply, mem_bot, exists_eq_left',
     mem_prod]
 #align submodule.map_inl Submodule.map_inl
 
-/- warning: submodule.map_inr -> Submodule.map_inr 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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
-but is expected to have type
-  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
-Case conversion may be inaccurate. Consider using '#align submodule.map_inr Submodule.map_inrₓ'. -/
 @[simp]
 theorem map_inr : q.map (inr R M M₂) = prod ⊥ q := by ext ⟨x, y⟩ <;> simp [and_left_comm, eq_comm]
 #align submodule.map_inr Submodule.map_inr
 
-/- warning: submodule.comap_fst -> Submodule.comap_fst 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
-but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
-Case conversion may be inaccurate. Consider using '#align submodule.comap_fst Submodule.comap_fstₓ'. -/
 @[simp]
 theorem comap_fst : p.comap (fst R M M₂) = prod p ⊤ := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_fst Submodule.comap_fst
 
-/- warning: submodule.comap_snd -> Submodule.comap_snd 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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
-but is expected to have type
-  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
-Case conversion may be inaccurate. Consider using '#align submodule.comap_snd Submodule.comap_sndₓ'. -/
 @[simp]
 theorem comap_snd : q.comap (snd R M M₂) = prod ⊤ q := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_snd Submodule.comap_snd
@@ -937,62 +607,29 @@ theorem prod_map_snd : (prod p q).map (snd R M M₂) = q := by
 #align submodule.prod_map_snd Submodule.prod_map_snd
 -/
 
-/- warning: submodule.ker_inl -> Submodule.ker_inl 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-Case conversion may be inaccurate. Consider using '#align submodule.ker_inl Submodule.ker_inlₓ'. -/
 @[simp]
 theorem ker_inl : (inl R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inl]
 #align submodule.ker_inl Submodule.ker_inl
 
-/- warning: submodule.ker_inr -> Submodule.ker_inr 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-Case conversion may be inaccurate. Consider using '#align submodule.ker_inr Submodule.ker_inrₓ'. -/
 @[simp]
 theorem ker_inr : (inr R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inr]
 #align submodule.ker_inr Submodule.ker_inr
 
-/- warning: submodule.range_fst -> Submodule.range_fst 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-Case conversion may be inaccurate. Consider using '#align submodule.range_fst Submodule.range_fstₓ'. -/
 @[simp]
 theorem range_fst : (fst R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_fst]
 #align submodule.range_fst Submodule.range_fst
 
-/- warning: submodule.range_snd -> Submodule.range_snd 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-Case conversion may be inaccurate. Consider using '#align submodule.range_snd Submodule.range_sndₓ'. -/
 @[simp]
 theorem range_snd : (snd R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_snd]
 #align submodule.range_snd Submodule.range_snd
 
 variable (R M M₂)
 
-/- warning: submodule.fst -> Submodule.fst 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], Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
-but is expected to have type
-  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], Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
-Case conversion may be inaccurate. Consider using '#align submodule.fst Submodule.fstₓ'. -/
 /-- `M` as a submodule of `M × N`. -/
 def fst : Submodule R (M × M₂) :=
   (⊥ : Submodule R M₂).comap (LinearMap.snd R M M₂)
 #align submodule.fst Submodule.fst
 
-/- warning: submodule.fst_equiv -> Submodule.fstEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.fst_equiv Submodule.fstEquivₓ'. -/
 /-- `M` as a submodule of `M × N` is isomorphic to `M`. -/
 @[simps]
 def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M
@@ -1005,38 +642,17 @@ def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M
   right_inv := by tidy
 #align submodule.fst_equiv Submodule.fstEquiv
 
-/- warning: submodule.fst_map_fst -> Submodule.fst_map_fst 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-Case conversion may be inaccurate. Consider using '#align submodule.fst_map_fst Submodule.fst_map_fstₓ'. -/
 theorem fst_map_fst : (Submodule.fst R M M₂).map (LinearMap.fst R M M₂) = ⊤ := by tidy
 #align submodule.fst_map_fst Submodule.fst_map_fst
 
-/- warning: submodule.fst_map_snd -> Submodule.fst_map_snd 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-Case conversion may be inaccurate. Consider using '#align submodule.fst_map_snd Submodule.fst_map_sndₓ'. -/
 theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ := by tidy; exact 0
 #align submodule.fst_map_snd Submodule.fst_map_snd
 
-/- warning: submodule.snd -> Submodule.snd 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], Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
-but is expected to have type
-  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], Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
-Case conversion may be inaccurate. Consider using '#align submodule.snd Submodule.sndₓ'. -/
 /-- `N` as a submodule of `M × N`. -/
 def snd : Submodule R (M × M₂) :=
   (⊥ : Submodule R M).comap (LinearMap.fst R M M₂)
 #align submodule.snd Submodule.snd
 
-/- warning: submodule.snd_equiv -> Submodule.sndEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.snd_equiv Submodule.sndEquivₓ'. -/
 /-- `N` as a submodule of `M × N` is isomorphic to `N`. -/
 @[simps]
 def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂
@@ -1049,30 +665,12 @@ def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂
   right_inv := by tidy
 #align submodule.snd_equiv Submodule.sndEquiv
 
-/- warning: submodule.snd_map_fst -> Submodule.snd_map_fst 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
-Case conversion may be inaccurate. Consider using '#align submodule.snd_map_fst Submodule.snd_map_fstₓ'. -/
 theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ := by tidy; exact 0
 #align submodule.snd_map_fst Submodule.snd_map_fst
 
-/- warning: submodule.snd_map_snd -> Submodule.snd_map_snd 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
-Case conversion may be inaccurate. Consider using '#align submodule.snd_map_snd Submodule.snd_map_sndₓ'. -/
 theorem snd_map_snd : (Submodule.snd R M M₂).map (LinearMap.snd R M M₂) = ⊤ := by tidy
 #align submodule.snd_map_snd Submodule.snd_map_snd
 
-/- warning: submodule.fst_sup_snd -> Submodule.fst_sup_snd 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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
-but is expected to have type
-  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
-Case conversion may be inaccurate. Consider using '#align submodule.fst_sup_snd Submodule.fst_sup_sndₓ'. -/
 theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   by
   rw [eq_top_iff]
@@ -1083,18 +681,9 @@ theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   · exact Submodule.mem_sup_right (submodule.mem_comap.mpr (by simp))
 #align submodule.fst_sup_snd Submodule.fst_sup_snd
 
-/- warning: submodule.fst_inf_snd -> Submodule.fst_inf_snd 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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
-but is expected to have type
-  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Inf.inf.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instBotSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
-Case conversion may be inaccurate. Consider using '#align submodule.fst_inf_snd Submodule.fst_inf_sndₓ'. -/
 theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ := by tidy
 #align submodule.fst_inf_snd Submodule.fst_inf_snd
 
-/- warning: submodule.le_prod_iff -> Submodule.le_prod_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.le_prod_iff Submodule.le_prod_iffₓ'. -/
 theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     q ≤ p₁.Prod p₂ ↔ map (LinearMap.fst R M M₂) q ≤ p₁ ∧ map (LinearMap.snd R M M₂) q ≤ p₂ :=
   by
@@ -1106,9 +695,6 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
   · rintro ⟨hH, hK⟩ ⟨x1, x2⟩ h; exact ⟨hH ⟨_, h, rfl⟩, hK ⟨_, h, rfl⟩⟩
 #align submodule.le_prod_iff Submodule.le_prod_iff
 
-/- warning: submodule.prod_le_iff -> Submodule.prod_le_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align submodule.prod_le_iff Submodule.prod_le_iffₓ'. -/
 theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     p₁.Prod p₂ ≤ q ↔ map (LinearMap.inl R M M₂) p₁ ≤ q ∧ map (LinearMap.inr R M M₂) p₂ ≤ q :=
   by
@@ -1123,23 +709,11 @@ theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
     simpa using add_mem h1' h2'
 #align submodule.prod_le_iff Submodule.prod_le_iff
 
-/- warning: submodule.prod_eq_bot_iff -> Submodule.prod_eq_bot_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Bot.bot.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
-but is expected to have type
-  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Bot.bot.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instBotSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
-Case conversion may be inaccurate. Consider using '#align submodule.prod_eq_bot_iff Submodule.prod_eq_bot_iffₓ'. -/
 theorem prod_eq_bot_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} :
     p₁.Prod p₂ = ⊥ ↔ p₁ = ⊥ ∧ p₂ = ⊥ := by
   simp only [eq_bot_iff, prod_le_iff, (gc_map_comap _).le_iff_le, comap_bot, ker_inl, ker_inr]
 #align submodule.prod_eq_bot_iff Submodule.prod_eq_bot_iff
 
-/- warning: submodule.prod_eq_top_iff -> Submodule.prod_eq_top_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
-but is expected to have type
-  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Top.top.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
-Case conversion may be inaccurate. Consider using '#align submodule.prod_eq_top_iff Submodule.prod_eq_top_iffₓ'. -/
 theorem prod_eq_top_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} :
     p₁.Prod p₂ = ⊤ ↔ p₁ = ⊤ ∧ p₂ = ⊤ := by
   simp only [eq_top_iff, le_prod_iff, ← (gc_map_comap _).le_iff_le, map_top, range_fst, range_snd]
@@ -1149,12 +723,6 @@ end Submodule
 
 namespace LinearEquiv
 
-/- warning: linear_equiv.prod_comm -> LinearEquiv.prodComm is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) (N : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} N] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R N _inst_1 _inst_3], LinearEquiv.{u1, u1, max u2 u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u3} M N) (Prod.{u3, u2} N M) (Prod.addCommMonoid.{u2, u3} M N _inst_2 _inst_3) (Prod.addCommMonoid.{u3, u2} N M _inst_3 _inst_2) (Prod.module.{u1, u2, u3} R M N _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Prod.module.{u1, u3, u2} R N M _inst_1 _inst_3 _inst_2 _inst_5 _inst_4)
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (N : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} N] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R N _inst_1 _inst_3], LinearEquiv.{u1, u1, max u3 u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u3} M N) (Prod.{u3, u2} N M) (Prod.instAddCommMonoidSum.{u2, u3} M N _inst_2 _inst_3) (Prod.instAddCommMonoidSum.{u3, u2} N M _inst_3 _inst_2) (Prod.module.{u1, u2, u3} R M N _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Prod.module.{u1, u3, u2} R N M _inst_1 _inst_3 _inst_2 _inst_5 _inst_4)
-Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_comm LinearEquiv.prodCommₓ'. -/
 /-- Product of modules is commutative up to linear isomorphism. -/
 @[simps apply]
 def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M]
@@ -1176,36 +744,21 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
-/- warning: linear_equiv.prod -> LinearEquiv.prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) -> (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) -> (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))
-Case conversion may be inaccurate. Consider using '#align linear_equiv.prod LinearEquiv.prodₓ'. -/
 /-- Product of linear equivalences; the maps come from `equiv.prod_congr`. -/
 protected def prod : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
   { e₁.toAddEquiv.prodCongr e₂.toAddEquiv with
     map_smul' := fun c x => Prod.ext (e₁.map_smulₛₗ c _) (e₂.map_smulₛₗ c _) }
 #align linear_equiv.prod LinearEquiv.prod
 
-/- warning: linear_equiv.prod_symm -> LinearEquiv.prod_symm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_symm LinearEquiv.prod_symmₓ'. -/
 theorem prod_symm : (e₁.Prod e₂).symm = e₁.symm.Prod e₂.symm :=
   rfl
 #align linear_equiv.prod_symm LinearEquiv.prod_symm
 
-/- warning: linear_equiv.prod_apply -> LinearEquiv.prod_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_apply LinearEquiv.prod_applyₓ'. -/
 @[simp]
 theorem prod_apply (p) : e₁.Prod e₂ p = (e₁ p.1, e₂ p.2) :=
   rfl
 #align linear_equiv.prod_apply LinearEquiv.prod_apply
 
-/- warning: linear_equiv.coe_prod -> LinearEquiv.coe_prod is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_equiv.coe_prod LinearEquiv.coe_prodₓ'. -/
 @[simp, norm_cast]
 theorem coe_prod :
     (e₁.Prod e₂ : M × M₃ →ₗ[R] M₂ × M₄) = (e₁ : M →ₗ[R] M₂).Prod_map (e₂ : M₃ →ₗ[R] M₄) :=
@@ -1226,9 +779,6 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
-/- warning: linear_equiv.skew_prod -> LinearEquiv.skewProd is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod LinearEquiv.skewProdₓ'. -/
 /-- Equivalence given by a block lower diagonal matrix. `e₁` and `e₂` are diagonal square blocks,
   and `f` is a rectangular block below the diagonal. -/
 protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
@@ -1243,17 +793,11 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
     right_inv := fun p => by simp }
 #align linear_equiv.skew_prod LinearEquiv.skewProd
 
-/- warning: linear_equiv.skew_prod_apply -> LinearEquiv.skewProd_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_apply LinearEquiv.skewProd_applyₓ'. -/
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
   rfl
 #align linear_equiv.skew_prod_apply LinearEquiv.skewProd_apply
 
-/- warning: linear_equiv.skew_prod_symm_apply -> LinearEquiv.skewProd_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_applyₓ'. -/
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
     (e₁.skewProd e₂ f).symm x = (e₁.symm x.1, e₂.symm (x.2 - f (e₁.symm x.1))) :=
@@ -1274,9 +818,6 @@ variable [AddCommGroup M] [AddCommGroup M₂] [AddCommGroup M₃]
 
 variable [Module R M] [Module R M₂] [Module R M₃]
 
-/- warning: linear_map.range_prod_eq -> LinearMap.range_prod_eq is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_eq LinearMap.range_prod_eqₓ'. -/
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
 theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f ⊔ ker g = ⊤) :
@@ -1327,9 +868,6 @@ variable {N : Type _} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N
 
 open Function
 
-/- warning: linear_map.tunnel_aux -> LinearMap.tunnelAux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux LinearMap.tunnelAuxₓ'. -/
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
 followed by the inclusion of this submodule back into `M`. -/
@@ -1337,9 +875,6 @@ def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M
   (Kφ.1.Subtype.comp Kφ.2.symm.toLinearMap).comp f
 #align linear_map.tunnel_aux LinearMap.tunnelAux
 
-/- warning: linear_map.tunnel_aux_injective -> LinearMap.tunnelAux_injective is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
   (Subtype.val_injective.comp Kφ.2.symm.Injective).comp i
@@ -1347,12 +882,6 @@ theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
 
 noncomputable section
 
-/- warning: linear_map.tunnel' -> LinearMap.tunnel'ₓ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tunnel'ₓ._proof_1.{u1} R _inst_1) (LinearMap.tunnel'ₓ._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3))
-but is expected to have type
-  PUnit.{max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))}
-Case conversion may be inaccurate. Consider using '#align linear_map.tunnel' LinearMap.tunnel'ₓₓ'. -/
 -- Even though we have `noncomputable theory`,
 -- we get an error without another `noncomputable` here.
 /-- Auxiliary definition for `tunnel`. -/
@@ -1364,12 +893,6 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
         (Submodule.fstEquiv R M N)⟩
 #align linear_map.tunnel' LinearMap.tunnel'ₓ
 
-/- warning: linear_map.tunnel -> LinearMap.tunnel is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
-Case conversion may be inaccurate. Consider using '#align linear_map.tunnel LinearMap.tunnelₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
 -/
@@ -1381,12 +904,6 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
       apply Submodule.map_subtype_le⟩
 #align linear_map.tunnel LinearMap.tunnel
 
-/- warning: linear_map.tailing -> LinearMap.tailing is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
-Case conversion may be inaccurate. Consider using '#align linear_map.tailing LinearMap.tailingₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
 -/
@@ -1394,18 +911,12 @@ def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M
   (Submodule.snd R M N).map (tunnelAux f (tunnel' f i n))
 #align linear_map.tailing LinearMap.tailing
 
-/- warning: linear_map.tailing_linear_equiv -> LinearMap.tailingLinearEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
   ((Submodule.snd R M N).equivMapOfInjective _ (tunnelAux_injective f i (tunnel' f i n))).symm.trans
     (Submodule.sndEquiv R M N)
 #align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquiv
 
-/- warning: linear_map.tailing_le_tunnel -> LinearMap.tailing_le_tunnel is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
   by
@@ -1414,9 +925,6 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
   apply Submodule.map_subtype_le
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
 
-/- warning: linear_map.tailing_disjoint_tunnel_succ -> LinearMap.tailing_disjoint_tunnel_succ is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -1427,9 +935,6 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
     Submodule.fst_inf_snd, Submodule.map_bot]
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
 
-/- warning: linear_map.tailing_sup_tunnel_succ_le_tunnel -> LinearMap.tailing_sup_tunnel_succ_le_tunnel is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
   by
@@ -1438,42 +943,21 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
   apply Submodule.map_subtype_le
 #align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnel
 
-/- warning: linear_map.tailings -> LinearMap.tailings is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
-Case conversion may be inaccurate. Consider using '#align linear_map.tailings LinearMap.tailingsₓ'. -/
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
   partialSups (tailing f i)
 #align linear_map.tailings LinearMap.tailings
 
-/- warning: linear_map.tailings_zero -> LinearMap.tailings_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
-Case conversion may be inaccurate. Consider using '#align linear_map.tailings_zero LinearMap.tailings_zeroₓ'. -/
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
   simp [tailings]
 #align linear_map.tailings_zero LinearMap.tailings_zero
 
-/- warning: linear_map.tailings_succ -> LinearMap.tailings_succ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
-Case conversion may be inaccurate. Consider using '#align linear_map.tailings_succ LinearMap.tailings_succₓ'. -/
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailings f i (n + 1) = tailings f i n ⊔ tailing f i (n + 1) := by simp [tailings]
 #align linear_map.tailings_succ LinearMap.tailings_succ
 
-/- warning: linear_map.tailings_disjoint_tunnel -> LinearMap.tailings_disjoint_tunnel is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -1487,12 +971,6 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
     apply tailing_sup_tunnel_succ_le_tunnel
 #align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnel
 
-/- warning: linear_map.tailings_disjoint_tailing -> LinearMap.tailings_disjoint_tailing is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
-Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailingₓ'. -/
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
   Disjoint.mono_right (tailing_le_tunnel f i _) (tailings_disjoint_tunnel f i _)
@@ -1505,12 +983,6 @@ section Graph
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommGroup M₃] [AddCommGroup M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄] (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄)
 
-/- warning: linear_map.graph -> LinearMap.graph 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], (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_6 _inst_7) -> (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], (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_6 _inst_7) -> (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
-Case conversion may be inaccurate. Consider using '#align linear_map.graph LinearMap.graphₓ'. -/
 /-- Graph of a linear map. -/
 def graph : Submodule R (M × M₂)
     where
@@ -1525,23 +997,11 @@ def graph : Submodule R (M × M₂)
     rw [map_smul, hx]
 #align linear_map.graph LinearMap.graph
 
-/- warning: linear_map.mem_graph_iff -> LinearMap.mem_graph_iff 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.Mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.hasMem.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (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_6 _inst_7) (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_6 _inst_7) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
-Case conversion may be inaccurate. Consider using '#align linear_map.mem_graph_iff LinearMap.mem_graph_iffₓ'. -/
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
   Iff.rfl
 #align linear_map.mem_graph_iff LinearMap.mem_graph_iff
 
-/- warning: linear_map.graph_eq_ker_coprod -> LinearMap.graph_eq_ker_coprod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.hasNeg.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
-but is expected to have type
-  forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.instNegLinearMapToAddCommMonoid.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
-Case conversion may be inaccurate. Consider using '#align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprodₓ'. -/
 theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
   by
   ext x
@@ -1549,12 +1009,6 @@ theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
   rw [add_comm, add_neg_eq_zero]
 #align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprod
 
-/- warning: linear_map.graph_eq_range_prod -> LinearMap.graph_eq_range_prod 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u3 u2} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
-Case conversion may be inaccurate. Consider using '#align linear_map.graph_eq_range_prod LinearMap.graph_eq_range_prodₓ'. -/
 theorem graph_eq_range_prod : f.graph = (LinearMap.id.Prod f).range :=
   by
   ext x
Diff
@@ -239,10 +239,8 @@ theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   ext x
   simp only [mem_ker, mem_range]
   constructor
-  · rintro ⟨y, rfl⟩
-    rfl
-  · intro h
-    exact ⟨x.fst, Prod.ext rfl h.symm⟩
+  · rintro ⟨y, rfl⟩; rfl
+  · intro h; exact ⟨x.fst, Prod.ext rfl h.symm⟩
 #align linear_map.range_inl LinearMap.range_inl
 
 /- warning: linear_map.ker_snd -> LinearMap.ker_snd is a dubious translation:
@@ -266,10 +264,8 @@ theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   ext x
   simp only [mem_ker, mem_range]
   constructor
-  · rintro ⟨y, rfl⟩
-    rfl
-  · intro h
-    exact ⟨x.snd, Prod.ext h.symm rfl⟩
+  · rintro ⟨y, rfl⟩; rfl
+  · intro h; exact ⟨x.snd, Prod.ext h.symm rfl⟩
 #align linear_map.range_inr LinearMap.range_inr
 
 /- warning: linear_map.ker_fst -> LinearMap.ker_fst is a dubious translation:
@@ -473,12 +469,9 @@ def coprodEquiv [Module S M₃] [SMulCommClass R S M₃] :
   invFun f := (f.comp (inl _ _ _), f.comp (inr _ _ _))
   left_inv f := by simp only [Prod.mk.eta, coprod_inl, coprod_inr]
   right_inv f := by simp only [← comp_coprod, comp_id, coprod_inl_inr]
-  map_add' a b := by
-    ext
+  map_add' a b := by ext;
     simp only [Prod.snd_add, add_apply, coprod_apply, Prod.fst_add, add_add_add_comm]
-  map_smul' r a := by
-    dsimp
-    ext
+  map_smul' r a := by dsimp; ext;
     simp only [smul_add, smul_apply, Prod.smul_snd, Prod.smul_fst, coprod_apply]
 #align linear_map.coprod_equiv LinearMap.coprodEquiv
 
@@ -761,8 +754,7 @@ theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Su
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
   by
   refine' le_antisymm _ (sup_le (map_le_iff_le_comap.2 _) (map_le_iff_le_comap.2 _))
-  · rw [SetLike.le_def]
-    rintro _ ⟨x, ⟨h₁, h₂⟩, rfl⟩
+  · rw [SetLike.le_def]; rintro _ ⟨x, ⟨h₁, h₂⟩, rfl⟩
     exact mem_sup.2 ⟨_, ⟨_, h₁, rfl⟩, _, ⟨_, h₂, rfl⟩, rfl⟩
   · exact fun x hx => ⟨(x, 0), by simp [hx]⟩
   · exact fun x hx => ⟨(0, x), by simp [hx]⟩
@@ -832,9 +824,7 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprodₓ'. -/
 theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
-    (ker f).Prod (ker g) ≤ ker (f.coprod g) :=
-  by
-  rintro ⟨y, z⟩
+    (ker f).Prod (ker g) ≤ ker (f.coprod g) := by rintro ⟨y, z⟩;
   simp (config := { contextual := true })
 #align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprod
 
@@ -886,9 +876,7 @@ but is expected to have type
   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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
 Case conversion may be inaccurate. Consider using '#align submodule.map_inl Submodule.map_inlₓ'. -/
 @[simp]
-theorem map_inl : p.map (inl R M M₂) = prod p ⊥ :=
-  by
-  ext ⟨x, y⟩
+theorem map_inl : p.map (inl R M M₂) = prod p ⊥ := by ext ⟨x, y⟩;
   simp only [and_left_comm, eq_comm, mem_map, Prod.mk.inj_iff, inl_apply, mem_bot, exists_eq_left',
     mem_prod]
 #align submodule.map_inl Submodule.map_inl
@@ -1032,10 +1020,7 @@ lean 3 declaration is
 but is expected to have type
   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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 Case conversion may be inaccurate. Consider using '#align submodule.fst_map_snd Submodule.fst_map_sndₓ'. -/
-theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ :=
-  by
-  tidy
-  exact 0
+theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ := by tidy; exact 0
 #align submodule.fst_map_snd Submodule.fst_map_snd
 
 /- warning: submodule.snd -> Submodule.snd is a dubious translation:
@@ -1070,10 +1055,7 @@ lean 3 declaration is
 but is expected to have type
   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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 Case conversion may be inaccurate. Consider using '#align submodule.snd_map_fst Submodule.snd_map_fstₓ'. -/
-theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ :=
-  by
-  tidy
-  exact 0
+theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ := by tidy; exact 0
 #align submodule.snd_map_fst Submodule.snd_map_fst
 
 /- warning: submodule.snd_map_snd -> Submodule.snd_map_snd is a dubious translation:
@@ -1119,12 +1101,9 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
   constructor
   · intro h
     constructor
-    · rintro x ⟨⟨y1, y2⟩, ⟨hy1, rfl⟩⟩
-      exact (h hy1).1
-    · rintro x ⟨⟨y1, y2⟩, ⟨hy1, rfl⟩⟩
-      exact (h hy1).2
-  · rintro ⟨hH, hK⟩ ⟨x1, x2⟩ h
-    exact ⟨hH ⟨_, h, rfl⟩, hK ⟨_, h, rfl⟩⟩
+    · rintro x ⟨⟨y1, y2⟩, ⟨hy1, rfl⟩⟩; exact (h hy1).1
+    · rintro x ⟨⟨y1, y2⟩, ⟨hy1, rfl⟩⟩; exact (h hy1).2
+  · rintro ⟨hH, hK⟩ ⟨x1, x2⟩ h; exact ⟨hH ⟨_, h, rfl⟩, hK ⟨_, h, rfl⟩⟩
 #align submodule.le_prod_iff Submodule.le_prod_iff
 
 /- warning: submodule.prod_le_iff -> Submodule.prod_le_iff is a dubious translation:
@@ -1136,19 +1115,11 @@ theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
   constructor
   · intro h
     constructor
-    · rintro _ ⟨x, hx, rfl⟩
-      apply h
-      exact ⟨hx, zero_mem p₂⟩
-    · rintro _ ⟨x, hx, rfl⟩
-      apply h
-      exact ⟨zero_mem p₁, hx⟩
+    · rintro _ ⟨x, hx, rfl⟩; apply h; exact ⟨hx, zero_mem p₂⟩
+    · rintro _ ⟨x, hx, rfl⟩; apply h; exact ⟨zero_mem p₁, hx⟩
   · rintro ⟨hH, hK⟩ ⟨x1, x2⟩ ⟨h1, h2⟩
-    have h1' : (LinearMap.inl R _ _) x1 ∈ q := by
-      apply hH
-      simpa using h1
-    have h2' : (LinearMap.inr R _ _) x2 ∈ q := by
-      apply hK
-      simpa using h2
+    have h1' : (LinearMap.inl R _ _) x1 ∈ q := by apply hH; simpa using h1
+    have h2' : (LinearMap.inr R _ _) x2 ∈ q := by apply hK; simpa using h2
     simpa using add_mem h1' h2'
 #align submodule.prod_le_iff Submodule.prod_le_iff
 
Diff
@@ -152,10 +152,7 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
 #align linear_map.prod LinearMap.prod
 
 /- warning: linear_map.coe_prod -> LinearMap.coe_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ (max u3 u4))} (M -> (Prod.{u3, u4} M₂ M₃)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (fun (_x : LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) => M -> (Prod.{u3, u4} M₂ M₃)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => M₂) (fun (ᾰ : M) => 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_4 _inst_9 _inst_10) (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_4 _inst_9 _inst_10) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod LinearMap.coe_prodₓ'. -/
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
@@ -187,10 +184,7 @@ theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id :=
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
 
 /- warning: linear_map.prod_equiv -> LinearMap.prodEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u3} S M₂ _inst_2 _inst_4] [_inst_16 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_17 : SMulCommClass.{u1, u5, u3} R S M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (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_4))) (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_4))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)))) (SMulZeroClass.toHasSmul.{u5, u3} S M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (SMulWithZero.toSmulZeroClass.{u5, u3} S M₂ (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (MulActionWithZero.toSMulWithZero.{u5, u3} S M₂ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (Module.toMulActionWithZero.{u5, u3} S M₂ _inst_2 _inst_4 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u5, 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_11)))) (SMulZeroClass.toHasSmul.{u5, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M₃ (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_16))))], LinearEquiv.{u5, u5, max (max u2 u3) u2 u4, max u2 u3 u4} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u2 u3, max u2 u4} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (Prod.addCommMonoid.{max u2 u3, max u2 u4} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u3, max u2 u4} S (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.module.{u1, u1, u5, u2, u3} R R S M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.module.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.module.{u1, u1, u5, u2, max u3 u4} R R S M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u5, u3, u4} S M₂ M₃ _inst_2 _inst_4 _inst_5 _inst_15 _inst_16) (LinearMap.prodEquiv._proof_1.{u1, u5, u3, u4} R M₂ M₃ S _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 _inst_15 _inst_16 _inst_17 _inst_18))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u3} S M₂ _inst_2 _inst_4] [_inst_16 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_17 : SMulCommClass.{u1, u5, u3} R S M₂ (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)))) (SMulZeroClass.toSMul.{u5, u3} S M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (SMulWithZero.toSMulZeroClass.{u5, u3} S M₂ (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (MulActionWithZero.toSMulWithZero.{u5, u3} S M₂ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (Module.toMulActionWithZero.{u5, u3} S M₂ _inst_2 _inst_4 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u5, u4} R S M₃ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u5, u4} S M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M₃ (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_16))))], LinearEquiv.{u5, u5, max (max u4 u2) u3 u2, max (max u4 u3) u2} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u3 u2, max u4 u2} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (Prod.instAddCommMonoidSum.{max u2 u3, max u2 u4} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u3, max u2 u4} S (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, u3} R R S M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, max u3 u4} R R S M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u5, u3, u4} S M₂ M₃ _inst_2 _inst_4 _inst_5 _inst_15 _inst_16) (Prod.smulCommClass.{u1, u5, u3, u4} R S M₂ M₃ (MulAction.toSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))) (MulAction.toSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u5, u3} S M₂ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (DistribMulAction.toMulAction.{u5, u3} S M₂ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4) (Module.toDistribMulAction.{u5, u3} S M₂ _inst_2 _inst_4 _inst_15))) (MulAction.toSMul.{u5, u4} S M₃ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (DistribMulAction.toMulAction.{u5, u4} S M₃ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u5, u4} S M₃ _inst_2 _inst_5 _inst_16))) _inst_17 _inst_18))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_equiv LinearMap.prodEquivₓ'. -/
 /-- Taking the product of two maps with the same domain is equivalent to taking the product of
 their codomains.
@@ -382,10 +376,7 @@ def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R
 #align linear_map.coprod LinearMap.coprod
 
 /- warning: linear_map.coprod_apply -> LinearMap.coprod_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} M₃ (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) => (Prod.{u2, u3} M M₂) -> M₃) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _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 u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (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_4 _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_4 _inst_5 _inst_10 _inst_11) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_apply LinearMap.coprod_applyₓ'. -/
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
@@ -420,10 +411,7 @@ theorem coprod_inl_inr : coprod (inl R M M₂) (inr R M M₂) = LinearMap.id :=
 #align linear_map.coprod_inl_inr LinearMap.coprod_inl_inr
 
 /- warning: linear_map.comp_coprod -> LinearMap.comp_coprod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (g₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₂ : 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_10 _inst_11), Eq.{max (succ (max u2 u3)) (succ u5)} (LinearMap.{u1, u1, max u2 u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₄ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_12) (LinearMap.comp.{u1, u1, u1, max u2 u3, u4, u5} R R R (Prod.{u2, u3} M M₂) M₃ M₄ _inst_1 _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 _inst_12 (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 (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 g₁ g₂)) (LinearMap.coprod.{u1, u2, u3, u5} R M M₂ M₄ _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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₁) (LinearMap.comp.{u1, u1, u1, u3, u4, u5} R R R M₂ M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 (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.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (g₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₂ : 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_10 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u5)} (LinearMap.{u1, u1, max u2 u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₄ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_12) (LinearMap.comp.{u1, u1, u1, max u2 u3, u4, u5} R R R (Prod.{u2, u3} M M₂) M₃ M₄ _inst_1 _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 g₁ g₂)) (LinearMap.coprod.{u1, u2, u3, u5} R M M₂ M₄ _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f g₁) (LinearMap.comp.{u1, u1, u1, u3, u4, u5} R R R M₂ M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f g₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.comp_coprod LinearMap.comp_coprodₓ'. -/
 theorem comp_coprod (f : M₃ →ₗ[R] M₄) (g₁ : M →ₗ[R] M₃) (g₂ : M₂ →ₗ[R] M₃) :
     f.comp (g₁.coprod g₂) = (f.comp g₁).coprod (f.comp g₂) :=
@@ -449,10 +437,7 @@ theorem snd_eq_coprod : snd R M M₂ = coprod 0 LinearMap.id := by ext <;> simp
 #align linear_map.snd_eq_coprod LinearMap.snd_eq_coprod
 
 /- warning: linear_map.coprod_comp_prod -> LinearMap.coprod_comp_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_10 _inst_12) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (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_4 _inst_9 _inst_10) (g' : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.comp.{u1, u1, u1, u2, max u3 u4, u5} R R R M (Prod.{u3, u4} M₂ M₃) M₄ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_6 _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) _inst_12 (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))) (LinearMap.coprod.{u1, u3, u4, u5} R M₂ M₃ M₄ _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 f g) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f' g')) (HAdd.hAdd.{max u2 u5, max u2 u5, max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (instHAdd.{max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.hasAdd.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_3 _inst_6 _inst_9 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u2, u3, u5} R R R M M₂ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (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 f') (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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 g'))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_10 _inst_12) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (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_4 _inst_9 _inst_10) (g' : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.comp.{u1, u1, u1, u2, max u3 u4, u5} R R R M (Prod.{u3, u4} M₂ M₃) M₄ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_6 _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u3, u4, u5} R M₂ M₃ M₄ _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 f g) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f' g')) (HAdd.hAdd.{max u2 u5, max u2 u5, max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (instHAdd.{max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.instAddLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_3 _inst_6 _inst_9 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u2, u3, u5} R R R M M₂ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f f') (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g g'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_comp_prod LinearMap.coprod_comp_prodₓ'. -/
 @[simp]
 theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f' : M →ₗ[R] M₂) (g' : M →ₗ[R] M₃) :
@@ -461,10 +446,7 @@ theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f'
 #align linear_map.coprod_comp_prod LinearMap.coprod_comp_prod
 
 /- warning: linear_map.coprod_map_prod -> LinearMap.coprod_map_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_map_prod LinearMap.coprod_map_prodₓ'. -/
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
@@ -477,10 +459,7 @@ theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Su
 #align linear_map.coprod_map_prod LinearMap.coprod_map_prod
 
 /- warning: linear_map.coprod_equiv -> LinearMap.coprodEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_16 : SMulCommClass.{u1, u5, 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_11)))) (SMulZeroClass.toHasSmul.{u5, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M₃ (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_15))))], LinearEquiv.{u5, u5, max (max u2 u4) u3 u4, max (max u2 u3) u4} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u2 u4, max u3 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.addCommMonoid.{max u2 u4, max u3 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u4, max u3 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.module.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16) (LinearMap.module.{u1, u1, u5, u3, u4} R R S M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)) (LinearMap.module.{u1, u1, u5, max u2 u3, u4} R R S (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_16 : SMulCommClass.{u1, u5, u4} R S M₃ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u5, u4} S M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M₃ (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_15))))], LinearEquiv.{u5, u5, max (max u4 u3) u4 u2, max u4 u3 u2} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u4 u2, max u4 u3} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.instAddCommMonoidSum.{max u2 u4, max u3 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u4, max u3 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u3, u4} R R S M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, max u2 u3, u4} R R S (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_equiv LinearMap.coprodEquivₓ'. -/
 /-- Taking the product of two maps with the same codomain is equivalent to taking the product of
 their domains.
@@ -504,10 +483,7 @@ def coprodEquiv [Module S M₃] [SMulCommClass R S M₃] :
 #align linear_map.coprod_equiv LinearMap.coprodEquiv
 
 /- warning: linear_map.prod_ext_iff -> LinearMap.prod_ext_iff is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, Iff (Eq.{max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g) (And (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, Iff (Eq.{max (max (succ u2) (succ u3)) (succ u4)} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g) (And (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_ext_iff LinearMap.prod_ext_iffₓ'. -/
 theorem prod_ext_iff {f g : M × M₂ →ₗ[R] M₃} :
     f = g ↔ f.comp (inl _ _ _) = g.comp (inl _ _ _) ∧ f.comp (inr _ _ _) = g.comp (inr _ _ _) :=
@@ -515,10 +491,7 @@ theorem prod_ext_iff {f g : M × M₂ →ₗ[R] M₃} :
 #align linear_map.prod_ext_iff LinearMap.prod_ext_iff
 
 /- warning: linear_map.prod_ext -> LinearMap.prod_ext is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (Eq.{max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u4)} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_ext LinearMap.prod_extₓ'. -/
 /--
 Split equality of linear maps from a product into linear maps over each component, to allow `ext`
@@ -543,20 +516,14 @@ def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[
 #align linear_map.prod_map LinearMap.prodMap
 
 /- warning: linear_map.coe_prod_map -> LinearMap.coe_prodMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} ((Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod_map LinearMap.coe_prodMapₓ'. -/
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
 #align linear_map.coe_prod_map LinearMap.coe_prodMap
 
 /- warning: linear_map.prod_map_apply -> LinearMap.prodMap_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} (Prod.{u4, u5} M₃ M₄) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} M₃ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_apply LinearMap.prodMap_applyₓ'. -/
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
@@ -564,10 +531,7 @@ theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.P
 #align linear_map.prod_map_apply LinearMap.prodMap_apply
 
 /- warning: linear_map.prod_map_comap_prod -> LinearMap.prodMap_comap_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{succ (max u2 u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max u2 u4) u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prodₓ'. -/
 theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S : Submodule R M₂)
     (S' : Submodule R M₄) :
@@ -576,10 +540,7 @@ theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S :
 #align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prod
 
 /- warning: linear_map.ker_prod_map -> LinearMap.ker_prodMap is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{succ (max u2 u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max u2 u4) u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_map LinearMap.ker_prodMapₓ'. -/
 theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
     (LinearMap.prodMap f g).ker = Submodule.prod f.ker g.ker :=
@@ -611,10 +572,7 @@ theorem prodMap_one : (1 : M →ₗ[R] M).Prod_map (1 : M₂ →ₗ[R] M₂) = 1
 #align linear_map.prod_map_one LinearMap.prodMap_one
 
 /- warning: linear_map.prod_map_comp -> LinearMap.prodMap_comp is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} {M₅ : Type.{u6}} {M₆ : Type.{u7}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_7 : AddCommMonoid.{u6} M₅] [_inst_8 : AddCommMonoid.{u7} M₆] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_13 : Module.{u1, u6} R M₅ _inst_1 _inst_7] [_inst_14 : Module.{u1, u7} R M₆ _inst_1 _inst_8] (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_4 _inst_9 _inst_10) (f₂₃ : 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_10 _inst_11) (g₁₂ : LinearMap.{u1, u1, u5, u6} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₄ M₅ _inst_6 _inst_7 _inst_12 _inst_13) (g₂₃ : LinearMap.{u1, u1, u6, u7} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₅ M₆ _inst_7 _inst_8 _inst_13 _inst_14), Eq.{max (succ (max u2 u5)) (succ (max u4 u7))} (LinearMap.{u1, u1, max u2 u5, max u4 u7} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u5} M M₄) (Prod.{u4, u7} M₃ M₆) (Prod.addCommMonoid.{u2, u5} M M₄ _inst_3 _inst_6) (Prod.addCommMonoid.{u4, u7} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u1, u2, u5} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u1, u4, u7} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14)) (LinearMap.comp.{u1, u1, u1, max u2 u5, max u3 u6, max u4 u7} R R R (Prod.{u2, u5} M M₄) (Prod.{u3, u6} M₂ M₅) (Prod.{u4, u7} M₃ M₆) _inst_1 _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u5} M M₄ _inst_3 _inst_6) (Prod.addCommMonoid.{u3, u6} M₂ M₅ _inst_4 _inst_7) (Prod.addCommMonoid.{u4, u7} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u1, u2, u5} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u1, u3, u6} R M₂ M₅ _inst_1 _inst_4 _inst_7 _inst_10 _inst_13) (Prod.module.{u1, u4, u7} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14) (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u3, u6, u4, u7} R M₂ M₅ M₃ M₆ _inst_1 _inst_4 _inst_7 _inst_5 _inst_8 _inst_10 _inst_13 _inst_11 _inst_14 f₂₃ g₂₃) (LinearMap.prodMap.{u1, u2, u5, u3, u6} R M M₄ M₂ M₅ _inst_1 _inst_3 _inst_6 _inst_4 _inst_7 _inst_9 _inst_12 _inst_10 _inst_13 f₁₂ g₁₂)) (LinearMap.prodMap.{u1, u2, u5, u4, u7} R M M₄ M₃ M₆ _inst_1 _inst_3 _inst_6 _inst_5 _inst_8 _inst_9 _inst_12 _inst_11 _inst_14 (LinearMap.comp.{u1, u1, u1, u2, u3, u4} R R R M M₂ M₃ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f₂₃ f₁₂) (LinearMap.comp.{u1, u1, u1, u5, u6, u7} R R R M₄ M₅ M₆ _inst_1 _inst_1 _inst_1 _inst_6 _inst_7 _inst_8 _inst_12 _inst_13 _inst_14 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g₂₃ g₁₂))
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} {M₄ : Type.{u7}} {M₅ : Type.{u2}} {M₆ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u4} M] [_inst_4 : AddCommMonoid.{u5} M₂] [_inst_5 : AddCommMonoid.{u6} M₃] [_inst_6 : AddCommMonoid.{u7} M₄] [_inst_7 : AddCommMonoid.{u2} M₅] [_inst_8 : AddCommMonoid.{u1} M₆] [_inst_9 : Module.{u3, u4} R M _inst_1 _inst_3] [_inst_10 : Module.{u3, u5} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u3, u6} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u3, u7} R M₄ _inst_1 _inst_6] [_inst_13 : Module.{u3, u2} R M₅ _inst_1 _inst_7] [_inst_14 : Module.{u3, u1} R M₆ _inst_1 _inst_8] (f₁₂ : LinearMap.{u3, u3, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_4 _inst_9 _inst_10) (f₂₃ : LinearMap.{u3, u3, u5, u6} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ _inst_4 _inst_5 _inst_10 _inst_11) (g₁₂ : LinearMap.{u3, u3, u7, u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₄ M₅ _inst_6 _inst_7 _inst_12 _inst_13) (g₂₃ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₅ M₆ _inst_7 _inst_8 _inst_13 _inst_14), Eq.{max (max (max (succ u4) (succ u6)) (succ u7)) (succ u1)} (LinearMap.{u3, u3, max u4 u7, max u6 u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u7} M M₄) (Prod.{u6, u1} M₃ M₆) (Prod.instAddCommMonoidSum.{u4, u7} M M₄ _inst_3 _inst_6) (Prod.instAddCommMonoidSum.{u6, u1} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u3, u4, u7} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u3, u6, u1} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14)) (LinearMap.comp.{u3, u3, u3, max u4 u7, max u5 u2, max u6 u1} R R R (Prod.{u4, u7} M M₄) (Prod.{u5, u2} M₂ M₅) (Prod.{u6, u1} M₃ M₆) _inst_1 _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u7} M M₄ _inst_3 _inst_6) (Prod.instAddCommMonoidSum.{u5, u2} M₂ M₅ _inst_4 _inst_7) (Prod.instAddCommMonoidSum.{u6, u1} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u3, u4, u7} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u3, u5, u2} R M₂ M₅ _inst_1 _inst_4 _inst_7 _inst_10 _inst_13) (Prod.module.{u3, u6, u1} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomCompTriple.ids.{u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.prodMap.{u3, u5, u2, u6, u1} R M₂ M₅ M₃ M₆ _inst_1 _inst_4 _inst_7 _inst_5 _inst_8 _inst_10 _inst_13 _inst_11 _inst_14 f₂₃ g₂₃) (LinearMap.prodMap.{u3, u4, u7, u5, u2} R M M₄ M₂ M₅ _inst_1 _inst_3 _inst_6 _inst_4 _inst_7 _inst_9 _inst_12 _inst_10 _inst_13 f₁₂ g₁₂)) (LinearMap.prodMap.{u3, u4, u7, u6, u1} R M M₄ M₃ M₆ _inst_1 _inst_3 _inst_6 _inst_5 _inst_8 _inst_9 _inst_12 _inst_11 _inst_14 (LinearMap.comp.{u3, u3, u3, u4, u5, u6} R R R M M₂ M₃ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomCompTriple.ids.{u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f₂₃ f₁₂) (LinearMap.comp.{u3, u3, u3, u7, u2, u1} R R R M₄ M₅ M₆ _inst_1 _inst_1 _inst_1 _inst_6 _inst_7 _inst_8 _inst_12 _inst_13 _inst_14 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomCompTriple.ids.{u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g₂₃ g₁₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comp LinearMap.prodMap_compₓ'. -/
 theorem prodMap_comp (f₁₂ : M →ₗ[R] M₂) (f₂₃ : M₂ →ₗ[R] M₃) (g₁₂ : M₄ →ₗ[R] M₅)
     (g₂₃ : M₅ →ₗ[R] M₆) :
@@ -623,10 +581,7 @@ theorem prodMap_comp (f₁₂ : M →ₗ[R] M₂) (f₂₃ : M₂ →ₗ[R] M₃
 #align linear_map.prod_map_comp LinearMap.prodMap_comp
 
 /- warning: linear_map.prod_map_mul -> LinearMap.prodMap_mul 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (f₁₂ : 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_9 _inst_9) (f₂₃ : 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_9 _inst_9) (g₁₂ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (g₂₃ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10), Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (instHMul.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.module.End.hasMul.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₂₃ g₂₃) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₁₂ g₁₂)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (HMul.hMul.{u2, u2, 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_9 _inst_9) (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_9 _inst_9) (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_9 _inst_9) (instHMul.{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_9 _inst_9) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_3 _inst_9)) f₂₃ f₁₂) (HMul.hMul.{u3, u3, u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (instHMul.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.module.End.hasMul.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) g₂₃ g₁₂))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (f₁₂ : 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_9 _inst_9) (f₂₃ : 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_9 _inst_9) (g₁₂ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (g₂₃ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10), Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (instHMul.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instMulEnd.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₂₃ g₂₃) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₁₂ g₁₂)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (HMul.hMul.{u2, u2, 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_9 _inst_9) (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_9 _inst_9) (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_9 _inst_9) (instHMul.{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_9 _inst_9) (LinearMap.instMulEnd.{u1, u2} R M _inst_1 _inst_3 _inst_9)) f₂₃ f₁₂) (HMul.hMul.{u3, u3, u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (instHMul.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.instMulEnd.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) g₂₃ g₁₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_mul LinearMap.prodMap_mulₓ'. -/
 theorem prodMap_mul (f₁₂ : M →ₗ[R] M) (f₂₃ : M →ₗ[R] M) (g₁₂ : M₂ →ₗ[R] M₂) (g₂₃ : M₂ →ₗ[R] M₂) :
     f₂₃.Prod_map g₂₃ * f₁₂.Prod_map g₁₂ = (f₂₃ * f₁₂).Prod_map (g₂₃ * g₁₂) :=
@@ -634,10 +589,7 @@ theorem prodMap_mul (f₁₂ : M →ₗ[R] M) (f₂₃ : M →ₗ[R] M) (g₁₂
 #align linear_map.prod_map_mul LinearMap.prodMap_mul
 
 /- warning: linear_map.prod_map_add -> LinearMap.prodMap_add is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (f₂ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₁ : 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_10 _inst_12) (g₂ : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HAdd.hAdd.{max u2 u4, max u2 u4, max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHAdd.{max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.hasAdd.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) f₁ f₂) (HAdd.hAdd.{max u3 u5, max u3 u5, max u3 u5} (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_10 _inst_12) (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_10 _inst_12) (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_10 _inst_12) (instHAdd.{max u3 u5} (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_10 _inst_12) (LinearMap.hasAdd.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) g₁ g₂)) (HAdd.hAdd.{max (max u2 u3) u4 u5, max (max u2 u3) u4 u5, max (max u2 u3) u4 u5} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHAdd.{max (max u2 u3) u4 u5} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.hasAdd.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₁ g₁) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₂ g₂))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (f₂ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₁ : 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_10 _inst_12) (g₂ : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HAdd.hAdd.{max u2 u4, max u2 u4, max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHAdd.{max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instAddLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) f₁ f₂) (HAdd.hAdd.{max u3 u5, max u3 u5, max u3 u5} (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_10 _inst_12) (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_10 _inst_12) (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_10 _inst_12) (instHAdd.{max u3 u5} (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_10 _inst_12) (LinearMap.instAddLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) g₁ g₂)) (HAdd.hAdd.{max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHAdd.{max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.instAddLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₁ g₁) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₂ g₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_add LinearMap.prodMap_addₓ'. -/
 theorem prodMap_add (f₁ : M →ₗ[R] M₃) (f₂ : M →ₗ[R] M₃) (g₁ : M₂ →ₗ[R] M₄) (g₂ : M₂ →ₗ[R] M₄) :
     (f₁ + f₂).Prod_map (g₁ + g₂) = f₁.Prod_map g₁ + f₂.Prod_map g₂ :=
@@ -645,10 +597,7 @@ theorem prodMap_add (f₁ : M →ₗ[R] M₃) (f₂ : M →ₗ[R] M₃) (g₁ :
 #align linear_map.prod_map_add LinearMap.prodMap_add
 
 /- warning: linear_map.prod_map_zero -> LinearMap.prodMap_zero is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], Eq.{max (succ (max u2 u4)) (succ (max u3 u5))} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (OfNat.mk.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.zero.{max u2 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_4 _inst_9 _inst_10) (LinearMap.hasZero.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) 0 (OfNat.mk.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) 0 (Zero.zero.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.hasZero.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))) (OfNat.ofNat.{max (max u2 u4) u3 u5} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) 0 (OfNat.mk.{max (max u2 u4) u3 u5} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) 0 (Zero.zero.{max (max u2 u4) u3 u5} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.hasZero.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u2 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_4 _inst_9 _inst_10) (LinearMap.instZeroLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) 0 (Zero.toOfNat0.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instZeroLinearMap.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) 0 (Zero.toOfNat0.{max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.instZeroLinearMap.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_zero LinearMap.prodMap_zeroₓ'. -/
 @[simp]
 theorem prodMap_zero : (0 : M →ₗ[R] M₂).Prod_map (0 : M₃ →ₗ[R] M₄) = 0 :=
@@ -656,10 +605,7 @@ theorem prodMap_zero : (0 : M →ₗ[R] M₂).Prod_map (0 : M₃ →ₗ[R] M₄)
 #align linear_map.prod_map_zero LinearMap.prodMap_zero
 
 /- warning: linear_map.prod_map_smul -> LinearMap.prodMap_smul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, 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_11)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, 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_12)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (SMul.smul.{u6, max u2 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.hasSmul.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15) _inst_17) s f) (SMul.smul.{u6, 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_10 _inst_12) (LinearMap.hasSmul.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16) _inst_18) s g)) (SMul.smul.{u6, max (max u2 u3) u4 u5} S (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.hasSmul.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Prod.distribMulAction.{u6, u4, u5} S M₃ M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.sMulCommClass.{u1, u6, u4, u5} R S M₃ 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_11)))) (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_12)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16)))) _inst_17 _inst_18)) s (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} {M₃ : Type.{u5}} {M₄ : Type.{u6}} (S : Type.{u1}) [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : AddCommMonoid.{u4} M₂] [_inst_5 : AddCommMonoid.{u5} M₃] [_inst_6 : AddCommMonoid.{u6} M₄] [_inst_9 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_10 : Module.{u2, u4} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u2, u6} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u1, u5} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u1, u6} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u2, u1, u5} R S M₃ (SMulZeroClass.toSMul.{u2, u5} R M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u5} R M₃ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u5} R M₃ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u1, u5} S M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u5} S M₃ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u5} S M₃ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u2, u1, u6} R S M₄ (SMulZeroClass.toSMul.{u2, u6} R M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u6} R M₄ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u6} R M₄ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12)))) (SMulZeroClass.toSMul.{u1, u6} S M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u6} S M₄ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u6} S M₄ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12), Eq.{max (max (max (succ u3) (succ u4)) (succ u5)) (succ u6)} (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HSMul.hSMul.{u1, max u3 u5, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHSMul.{u1, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSMulLinearMap.{u2, u2, u1, u3, u5} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) _inst_17)) s f) (HSMul.hSMul.{u1, max u4 u6, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (instHSMul.{u1, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instSMulLinearMap.{u2, u2, u1, u4, u6} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16) _inst_18)) s g)) (HSMul.hSMul.{u1, max (max (max u6 u5) u4) u3, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHSMul.{u1, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.instSMulLinearMap.{u2, u2, u1, max u3 u4, max u5 u6} R R S (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Prod.distribMulAction.{u5, u6, u1} M₃ M₄ S (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.smulCommClass.{u2, u1, u5, u6} R S M₃ M₄ (MulAction.toSMul.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12))) (MulAction.toSMul.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))) (MulAction.toSMul.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))) _inst_17 _inst_18))) s (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_smul LinearMap.prodMap_smulₓ'. -/
 @[simp]
 theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄]
@@ -670,10 +616,7 @@ theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [S
 variable (R M M₂ M₃ M₄)
 
 /- warning: linear_map.prod_map_linear -> LinearMap.prodMapLinear is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) (M₃ : Type.{u4}) (M₄ : Type.{u5}) (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, 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_11)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, 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_12)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))], LinearMap.{u6, u6, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} S S _inst_2 _inst_2 (RingHom.id.{u6} S (Semiring.toNonAssocSemiring.{u6} S _inst_2)) (Prod.{max u2 u4, max u3 u5} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12)) (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.addCommMonoid.{max u2 u4, max u3 u5} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u6, max u2 u4, max u3 u5} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.module.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.module.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.module.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u6, u4, u5} S M₃ M₄ _inst_2 _inst_5 _inst_6 _inst_15 _inst_16) (LinearMap.prodMapLinear._proof_1.{u1, u6, u4, u5} R M₃ M₄ S _inst_1 _inst_2 _inst_5 _inst_6 _inst_11 _inst_12 _inst_15 _inst_16 _inst_17 _inst_18))
-but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) (M₃ : Type.{u4}) (M₄ : Type.{u5}) (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, u4} R S M₃ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u6, u4} S M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u6, u4} S M₃ (MonoidWithZero.toZero.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, u5} R S M₄ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u5} R M₄ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u5} R M₄ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (Module.toMulActionWithZero.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12)))) (SMulZeroClass.toSMul.{u6, u5} S M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u6, u5} S M₄ (MonoidWithZero.toZero.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))], LinearMap.{u6, u6, max (max u5 u3) u4 u2, max (max u5 u4) u3 u2} S S _inst_2 _inst_2 (RingHom.id.{u6} S (Semiring.toNonAssocSemiring.{u6} S _inst_2)) (Prod.{max u4 u2, max u5 u3} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12)) (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.instAddCommMonoidSum.{max u2 u4, max u3 u5} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u6, max u2 u4, max u3 u5} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u6, u4, u5} S M₃ M₄ _inst_2 _inst_5 _inst_6 _inst_15 _inst_16) (Prod.smulCommClass.{u1, u6, u4, u5} R S M₃ M₄ (MulAction.toSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12))) (MulAction.toSMul.{u6, u4} S M₃ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (DistribMulAction.toMulAction.{u6, u4} S M₃ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))) (MulAction.toSMul.{u6, u5} S M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (DistribMulAction.toMulAction.{u6, u5} S M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))) _inst_17 _inst_18))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_linear LinearMap.prodMapLinearₓ'. -/
 /-- `linear_map.prod_map` as a `linear_map` -/
 @[simps]
@@ -711,10 +654,7 @@ variable {A : Type _} [NonUnitalNonAssocSemiring A] [Module R A]
 variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 
 /- warning: linear_map.inl_map_mul -> LinearMap.inl_map_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15))) a₁ a₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₁) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₂))
-but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_map_mul LinearMap.inl_map_mulₓ'. -/
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
@@ -722,10 +662,7 @@ theorem inl_map_mul (a₁ a₂ : A) :
 #align linear_map.inl_map_mul LinearMap.inl_map_mul
 
 /- warning: linear_map.inr_map_mul -> LinearMap.inr_map_mul is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17))) b₁ b₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₁) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₂))
-but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_map_mul LinearMap.inr_map_mulₓ'. -/
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
@@ -770,10 +707,7 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
 
 /- warning: linear_map.range_coprod -> LinearMap.range_coprod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u4) u3} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.range_coprod LinearMap.range_coprodₓ'. -/
 theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.coprod g).range = f.range ⊔ g.range :=
   Submodule.ext fun x => by simp [mem_sup]
@@ -821,10 +755,7 @@ theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range :=
 #align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inr
 
 /- warning: linear_map.map_coprod_prod -> LinearMap.map_coprod_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.map_coprod_prod LinearMap.map_coprod_prodₓ'. -/
 theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Submodule R M)
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
@@ -867,10 +798,7 @@ theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule R M₂) :
 #align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_map
 
 /- warning: linear_map.span_inl_union_inr -> LinearMap.span_inl_union_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.hasUnion.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
-but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.span_inl_union_inr LinearMap.span_inl_union_inrₓ'. -/
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
@@ -889,10 +817,7 @@ theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g)
 #align linear_map.ker_prod LinearMap.ker_prod
 
 /- warning: linear_map.range_prod_le -> LinearMap.range_prod_le is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toHasLe.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (SetLike.partialOrder.{max u3 u4, max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Prod.{u3, u4} M₂ M₃) (Submodule.setLike.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (OmegaCompletePartialOrder.toPartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (CompleteLattice.instOmegaCompletePartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Submodule.completeLattice.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_le LinearMap.range_prod_leₓ'. -/
 theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
     range (prod f g) ≤ (range f).Prod (range g) :=
@@ -903,10 +828,7 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
 #align linear_map.range_prod_le LinearMap.range_prod_le
 
 /- warning: linear_map.ker_prod_ker_le_ker_coprod -> LinearMap.ker_prod_ker_le_ker_coprod 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (OmegaCompletePartialOrder.toPartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (CompleteLattice.instOmegaCompletePartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Submodule.completeLattice.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)))))) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprodₓ'. -/
 theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
@@ -917,10 +839,7 @@ theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R
 #align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprod
 
 /- warning: linear_map.ker_coprod_of_disjoint_range -> LinearMap.ker_coprod_of_disjoint_range 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (SetLike.partialOrder.{u4, u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) M₃ (Submodule.setLike.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13)) (Submodule.orderBot.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g)) -> (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)))
-but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (Submodule.completeLattice.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (LinearMap.range.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) f) (LinearMap.range.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) g)) -> (Eq.{max (succ u4) (succ u2)} (Submodule.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_rangeₓ'. -/
 theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
@@ -952,10 +871,7 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 variable [Module R M] [Module R M₂]
 
 /- warning: submodule.sup_eq_range -> Submodule.sup_eq_range 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
-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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align submodule.sup_eq_range Submodule.sup_eq_rangeₓ'. -/
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
@@ -1087,10 +1003,7 @@ def fst : Submodule R (M × M₂) :=
 #align submodule.fst Submodule.fst
 
 /- warning: submodule.fst_equiv -> Submodule.fstEquiv 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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) M (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
-but is expected to have type
-  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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
+<too large>
 Case conversion may be inaccurate. Consider using '#align submodule.fst_equiv Submodule.fstEquivₓ'. -/
 /-- `M` as a submodule of `M × N` is isomorphic to `M`. -/
 @[simps]
@@ -1137,10 +1050,7 @@ def snd : Submodule R (M × M₂) :=
 #align submodule.snd Submodule.snd
 
 /- warning: submodule.snd_equiv -> Submodule.sndEquiv 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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) M₂ (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
-but is expected to have type
-  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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M₂ (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
+<too large>
 Case conversion may be inaccurate. Consider using '#align submodule.snd_equiv Submodule.sndEquivₓ'. -/
 /-- `N` as a submodule of `M × N` is isomorphic to `N`. -/
 @[simps]
@@ -1201,10 +1111,7 @@ theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ :=
 #align submodule.fst_inf_snd Submodule.fst_inf_snd
 
 /- warning: submodule.le_prod_iff -> Submodule.le_prod_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) M₂ (Submodule.setLike.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
-but is expected to have type
-  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.completeLattice.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align submodule.le_prod_iff Submodule.le_prod_iffₓ'. -/
 theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     q ≤ p₁.Prod p₂ ↔ map (LinearMap.fst R M M₂) q ≤ p₁ ∧ map (LinearMap.snd R M M₂) q ≤ p₂ :=
@@ -1221,10 +1128,7 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
 #align submodule.le_prod_iff Submodule.le_prod_iff
 
 /- warning: submodule.prod_le_iff -> Submodule.prod_le_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
-but is expected to have type
-  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
+<too large>
 Case conversion may be inaccurate. Consider using '#align submodule.prod_le_iff Submodule.prod_le_iffₓ'. -/
 theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     p₁.Prod p₂ ≤ q ↔ map (LinearMap.inl R M M₂) p₁ ≤ q ∧ map (LinearMap.inr R M M₂) p₂ ≤ q :=
@@ -1314,20 +1218,14 @@ protected def prod : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
 #align linear_equiv.prod LinearEquiv.prod
 
 /- warning: linear_equiv.prod_symm -> LinearEquiv.prod_symm is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearEquiv.prod.{u1, u3, u2, u5, u4} R M₂ M M₄ M₃ _inst_1 _inst_3 _inst_2 _inst_5 _inst_4 module_M₂ module_M module_M₄ module_M₃ (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearEquiv.prod.{u1, u3, u2, u5, u4} R M₂ M M₄ M₃ _inst_1 _inst_3 _inst_2 _inst_5 _inst_4 module_M₂ module_M module_M₄ module_M₃ (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_symm LinearEquiv.prod_symmₓ'. -/
 theorem prod_symm : (e₁.Prod e₂).symm = e₁.symm.Prod e₂.symm :=
   rfl
 #align linear_equiv.prod_symm LinearEquiv.prod_symm
 
 /- warning: linear_equiv.prod_apply -> LinearEquiv.prod_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ p)) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ p)))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) p) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) (Prod.fst.{u2, u4} M M₃ p)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ p)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_apply LinearEquiv.prod_applyₓ'. -/
 @[simp]
 theorem prod_apply (p) : e₁.Prod e₂ p = (e₁ p.1, e₂ p.2) :=
@@ -1335,10 +1233,7 @@ theorem prod_apply (p) : e₁.Prod e₂ p = (e₁ p.1, e₂ p.2) :=
 #align linear_equiv.prod_apply LinearEquiv.prod_apply
 
 /- warning: linear_equiv.coe_prod -> LinearEquiv.coe_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (succ (max u2 u4)) (succ (max u3 u5))} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) ((fun (a : Sort.{max (succ (max u2 u4)) (succ (max u3 u5))}) (b : Sort.{max (succ (max u2 u4)) (succ (max u3 u5))}) [self : HasLiftT.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} a b] => self.0) (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (HasLiftT.mk.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (CoeTCₓ.coe.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (coeBase.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearEquiv.LinearMap.hasCoe.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1))))) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_2 _inst_4 _inst_3 _inst_5 module_M module_M₃ module_M₂ module_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) (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (LinearEquiv.LinearMap.hasCoe.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1))))) e₁) ((fun (a : Sort.{max (succ u4) (succ u5)}) (b : Sort.{max (succ u4) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5), max (succ u4) (succ u5)} a b] => self.0) (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (HasLiftT.mk.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (CoeTCₓ.coe.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (coeBase.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearEquiv.LinearMap.hasCoe.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1))))) e₂))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearEquiv.toLinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_2 _inst_4 _inst_3 _inst_5 module_M module_M₃ module_M₂ module_M₄ (LinearEquiv.toLinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂ e₁) (LinearEquiv.toLinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄ e₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_equiv.coe_prod LinearEquiv.coe_prodₓ'. -/
 @[simp, norm_cast]
 theorem coe_prod :
@@ -1361,10 +1256,7 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
 /- warning: linear_equiv.skew_prod -> LinearEquiv.skewProd is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) -> (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) -> (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) -> (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) -> (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod LinearEquiv.skewProdₓ'. -/
 /-- Equivalence given by a block lower diagonal matrix. `e₁` and `e₂` are diagonal square blocks,
   and `f` is a rectangular block below the diagonal. -/
@@ -1381,10 +1273,7 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
 #align linear_equiv.skew_prod LinearEquiv.skewProd
 
 /- warning: linear_equiv.skew_prod_apply -> LinearEquiv.skewProd_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} M₄ M₄ M₄ (instHAdd.{u5} M₄ (AddZeroClass.toHasAdd.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (SubNegMonoid.toAddMonoid.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))))) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ x)) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_apply LinearEquiv.skewProd_applyₓ'. -/
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
@@ -1392,10 +1281,7 @@ theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e
 #align linear_equiv.skew_prod_apply LinearEquiv.skewProd_apply
 
 /- warning: linear_equiv.skew_prod_symm_apply -> LinearEquiv.skewProd_symm_apply is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} (Prod.{u2, u4} M M₃) (coeFn.{max (succ (max u3 u5)) (succ (max u2 u4)), max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (fun (_x : LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) => (Prod.{u3, u5} M₂ M₄) -> (Prod.{u2, u4} M M₃)) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} M M₃ (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (coeFn.{max (succ u5) (succ u4), max (succ u5) (succ u4)} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) (fun (_x : LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) => M₄ -> M₃) (LinearEquiv.hasCoeToFun.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ M₄ M₄ (instHSub.{u5} M₄ (SubNegMonoid.toHasSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_applyₓ'. -/
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
@@ -1418,10 +1304,7 @@ variable [AddCommGroup M] [AddCommGroup M₂] [AddCommGroup M₃]
 variable [Module R M] [Module R M₂] [Module R M₃]
 
 /- warning: linear_map.range_prod_eq -> LinearMap.range_prod_eq is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.hasTop.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{succ (max u3 u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u3 u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{max (succ u3) (succ u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u4 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_eq LinearMap.range_prod_eqₓ'. -/
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
@@ -1474,10 +1357,7 @@ variable {N : Type _} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N
 open Function
 
 /- warning: linear_map.tunnel_aux -> LinearMap.tunnelAux is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tunnelAux._proof_1.{u1} R _inst_1) (LinearMap.tunnelAux._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux LinearMap.tunnelAuxₓ'. -/
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
@@ -1487,10 +1367,7 @@ def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M
 #align linear_map.tunnel_aux LinearMap.tunnelAux
 
 /- warning: linear_map.tunnel_aux_injective -> LinearMap.tunnelAux_injective is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.tunnelAux.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
@@ -1547,10 +1424,7 @@ def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M
 #align linear_map.tailing LinearMap.tailing
 
 /- warning: linear_map.tailing_linear_equiv -> LinearMap.tailingLinearEquiv is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tailingLinearEquiv._proof_1.{u1} R _inst_1) (LinearMap.tailingLinearEquiv._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
@@ -1559,10 +1433,7 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 #align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquiv
 
 /- warning: linear_map.tailing_le_tunnel -> LinearMap.tailing_le_tunnel is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
@@ -1573,10 +1444,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
 
 /- warning: linear_map.tailing_disjoint_tunnel_succ -> LinearMap.tailing_disjoint_tunnel_succ is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1589,10 +1457,7 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
 
 /- warning: linear_map.tailing_sup_tunnel_succ_le_tunnel -> LinearMap.tailing_sup_tunnel_succ_le_tunnel is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
@@ -1636,10 +1501,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 #align linear_map.tailings_succ LinearMap.tailings_succ
 
 /- warning: linear_map.tailings_disjoint_tunnel -> LinearMap.tailings_disjoint_tunnel is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
-but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
Diff
@@ -100,7 +100,7 @@ end
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.fst_apply LinearMap.fst_applyₓ'. -/
 @[simp]
 theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
@@ -111,7 +111,7 @@ theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.snd_apply LinearMap.snd_applyₓ'. -/
 @[simp]
 theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
@@ -122,7 +122,7 @@ theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.fst_surjective LinearMap.fst_surjectiveₓ'. -/
 theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0), rfl⟩
 #align linear_map.fst_surjective LinearMap.fst_surjective
@@ -131,7 +131,7 @@ theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.snd_surjective LinearMap.snd_surjectiveₓ'. -/
 theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x), rfl⟩
 #align linear_map.snd_surjective LinearMap.snd_surjective
@@ -155,7 +155,7 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ (max u3 u4))} (M -> (Prod.{u3, u4} M₂ M₃)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (fun (_x : LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) => M -> (Prod.{u3, u4} M₂ M₃)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => M₂) (fun (ᾰ : M) => 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_4 _inst_9 _inst_10) (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_4 _inst_9 _inst_10) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod LinearMap.coe_prodₓ'. -/
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
@@ -294,7 +294,7 @@ end
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M 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_4)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_inl LinearMap.coe_inlₓ'. -/
 @[simp]
 theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
@@ -305,7 +305,7 @@ theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M 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_4)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_apply LinearMap.inl_applyₓ'. -/
 theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
   rfl
@@ -315,7 +315,7 @@ theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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_3)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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 linear_map.coe_inr LinearMap.coe_inrₓ'. -/
 @[simp]
 theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
@@ -326,7 +326,7 @@ theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (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_3)))))) x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_apply LinearMap.inr_applyₓ'. -/
 theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) :=
   rfl
@@ -356,7 +356,7 @@ theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_injective LinearMap.inl_injectiveₓ'. -/
 theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 #align linear_map.inl_injective LinearMap.inl_injective
@@ -365,7 +365,7 @@ theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_injective LinearMap.inr_injectiveₓ'. -/
 theorem inr_injective : Function.Injective (inr R M M₂) := fun _ => by simp
 #align linear_map.inr_injective LinearMap.inr_injective
@@ -385,7 +385,7 @@ def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} M₃ (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) => (Prod.{u2, u3} M M₂) -> M₃) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _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 u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (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_4 _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_4 _inst_5 _inst_10 _inst_11) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_apply LinearMap.coprod_applyₓ'. -/
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
@@ -546,7 +546,7 @@ def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} ((Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod_map LinearMap.coe_prodMapₓ'. -/
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
@@ -556,7 +556,7 @@ theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Pro
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} (Prod.{u4, u5} M₃ M₄) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} M₃ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_apply LinearMap.prodMap_applyₓ'. -/
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
@@ -714,7 +714,7 @@ variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15))) a₁ a₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₁) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₂))
 but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_map_mul LinearMap.inl_map_mulₓ'. -/
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
@@ -725,7 +725,7 @@ theorem inl_map_mul (a₁ a₂ : A) :
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17))) b₁ b₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₁) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₂))
 but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_map_mul LinearMap.inr_map_mulₓ'. -/
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
@@ -870,7 +870,7 @@ theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.hasUnion.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
 Case conversion may be inaccurate. Consider using '#align linear_map.span_inl_union_inr LinearMap.span_inl_union_inrₓ'. -/
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
@@ -1327,7 +1327,7 @@ theorem prod_symm : (e₁.Prod e₂).symm = e₁.symm.Prod e₂.symm :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ p)) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ p)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) p) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ p)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ p)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) p) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) (Prod.fst.{u2, u4} M M₃ p)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ p)))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_apply LinearEquiv.prod_applyₓ'. -/
 @[simp]
 theorem prod_apply (p) : e₁.Prod e₂ p = (e₁ p.1, e₂ p.2) :=
@@ -1384,7 +1384,7 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} M₄ M₄ M₄ (instHAdd.{u5} M₄ (AddZeroClass.toHasAdd.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (SubNegMonoid.toAddMonoid.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))))) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ x)) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_apply LinearEquiv.skewProd_applyₓ'. -/
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
@@ -1395,7 +1395,7 @@ theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} (Prod.{u2, u4} M M₃) (coeFn.{max (succ (max u3 u5)) (succ (max u2 u4)), max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (fun (_x : LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) => (Prod.{u3, u5} M₂ M₄) -> (Prod.{u2, u4} M M₃)) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} M M₃ (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (coeFn.{max (succ u5) (succ u4), max (succ u5) (succ u4)} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) (fun (_x : LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) => M₄ -> M₃) (LinearEquiv.hasCoeToFun.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ M₄ M₄ (instHSub.{u5} M₄ (SubNegMonoid.toHasSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_applyₓ'. -/
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
@@ -1490,7 +1490,7 @@ def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.tunnelAux.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
@@ -1520,7 +1520,7 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel LinearMap.tunnelₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
@@ -1537,7 +1537,7 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing LinearMap.tailingₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
@@ -1550,7 +1550,7 @@ def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tailingLinearEquiv._proof_1.{u1} R _inst_1) (LinearMap.tailingLinearEquiv._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
@@ -1562,7 +1562,7 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
@@ -1576,7 +1576,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1592,7 +1592,7 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
@@ -1606,7 +1606,7 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings LinearMap.tailingsₓ'. -/
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
@@ -1617,7 +1617,7 @@ def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_zero LinearMap.tailings_zeroₓ'. -/
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
@@ -1628,7 +1628,7 @@ theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_succ LinearMap.tailings_succₓ'. -/
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
@@ -1639,7 +1639,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1658,7 +1658,7 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailingₓ'. -/
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
@@ -1696,7 +1696,7 @@ def graph : Submodule R (M × 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.Mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.hasMem.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (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_6 _inst_7) (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_6 _inst_7) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.mem_graph_iff LinearMap.mem_graph_iffₓ'. -/
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
Diff
@@ -1562,7 +1562,7 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
@@ -1576,7 +1576,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1592,7 +1592,7 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
@@ -1639,7 +1639,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
Diff
@@ -100,7 +100,7 @@ end
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.fst_apply LinearMap.fst_applyₓ'. -/
 @[simp]
 theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
@@ -111,7 +111,7 @@ theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.snd_apply LinearMap.snd_applyₓ'. -/
 @[simp]
 theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
@@ -122,7 +122,7 @@ theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.fst_surjective LinearMap.fst_surjectiveₓ'. -/
 theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0), rfl⟩
 #align linear_map.fst_surjective LinearMap.fst_surjective
@@ -131,7 +131,7 @@ theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.snd_surjective LinearMap.snd_surjectiveₓ'. -/
 theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x), rfl⟩
 #align linear_map.snd_surjective LinearMap.snd_surjective
@@ -155,7 +155,7 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ (max u3 u4))} (M -> (Prod.{u3, u4} M₂ M₃)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (fun (_x : LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) => M -> (Prod.{u3, u4} M₂ M₃)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => M₂) (fun (ᾰ : M) => 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_4 _inst_9 _inst_10) (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_4 _inst_9 _inst_10) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod LinearMap.coe_prodₓ'. -/
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
@@ -238,7 +238,7 @@ def inr : M₂ →ₗ[R] 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_inl LinearMap.range_inlₓ'. -/
 theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   by
@@ -255,7 +255,7 @@ theorem range_inl : range (inl R M M₂) = ker (snd R 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_snd LinearMap.ker_sndₓ'. -/
 theorem ker_snd : ker (snd R M M₂) = range (inl R M M₂) :=
   Eq.symm <| range_inl R M M₂
@@ -265,7 +265,7 @@ theorem ker_snd : ker (snd R M M₂) = range (inl R 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_inr LinearMap.range_inrₓ'. -/
 theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   by
@@ -282,7 +282,7 @@ theorem range_inr : range (inr R M M₂) = ker (fst R 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_fst LinearMap.ker_fstₓ'. -/
 theorem ker_fst : ker (fst R M M₂) = range (inr R M M₂) :=
   Eq.symm <| range_inr R M M₂
@@ -294,7 +294,7 @@ end
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M 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_4)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_inl LinearMap.coe_inlₓ'. -/
 @[simp]
 theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
@@ -305,7 +305,7 @@ theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M 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_4)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_apply LinearMap.inl_applyₓ'. -/
 theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
   rfl
@@ -315,7 +315,7 @@ theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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_3)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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 linear_map.coe_inr LinearMap.coe_inrₓ'. -/
 @[simp]
 theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
@@ -326,7 +326,7 @@ theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (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_3)))))) x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_apply LinearMap.inr_applyₓ'. -/
 theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) :=
   rfl
@@ -356,7 +356,7 @@ theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_injective LinearMap.inl_injectiveₓ'. -/
 theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 #align linear_map.inl_injective LinearMap.inl_injective
@@ -365,7 +365,7 @@ theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_injective LinearMap.inr_injectiveₓ'. -/
 theorem inr_injective : Function.Injective (inr R M M₂) := fun _ => by simp
 #align linear_map.inr_injective LinearMap.inr_injective
@@ -385,7 +385,7 @@ def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} M₃ (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) => (Prod.{u2, u3} M M₂) -> M₃) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _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 u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (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_4 _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_4 _inst_5 _inst_10 _inst_11) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_apply LinearMap.coprod_applyₓ'. -/
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
@@ -464,7 +464,7 @@ theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f'
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_map_prod LinearMap.coprod_map_prodₓ'. -/
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
@@ -546,7 +546,7 @@ def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} ((Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod_map LinearMap.coe_prodMapₓ'. -/
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
@@ -556,7 +556,7 @@ theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Pro
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} (Prod.{u4, u5} M₃ M₄) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} M₃ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_apply LinearMap.prodMap_applyₓ'. -/
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
@@ -567,7 +567,7 @@ theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.P
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{succ (max u2 u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max u2 u4) u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prodₓ'. -/
 theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S : Submodule R M₂)
     (S' : Submodule R M₄) :
@@ -579,7 +579,7 @@ theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{succ (max u2 u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max u2 u4) u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_map LinearMap.ker_prodMapₓ'. -/
 theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
     (LinearMap.prodMap f g).ker = Submodule.prod f.ker g.ker :=
@@ -714,7 +714,7 @@ variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15))) a₁ a₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₁) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₂))
 but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_map_mul LinearMap.inl_map_mulₓ'. -/
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
@@ -725,7 +725,7 @@ theorem inl_map_mul (a₁ a₂ : A) :
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17))) b₁ b₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₁) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₂))
 but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_map_mul LinearMap.inr_map_mulₓ'. -/
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
@@ -773,7 +773,7 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u4) u3} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u4) u3} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_coprod LinearMap.range_coprodₓ'. -/
 theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.coprod g).range = f.range ⊔ g.range :=
   Submodule.ext fun x => by simp [mem_sup]
@@ -783,7 +783,7 @@ theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.copro
 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
 Case conversion may be inaccurate. Consider using '#align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inrₓ'. -/
 theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).range :=
   by
@@ -803,7 +803,7 @@ theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).rang
 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
 Case conversion may be inaccurate. Consider using '#align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inrₓ'. -/
 theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤ :=
   IsCompl.sup_eq_top isCompl_range_inl_inr
@@ -813,7 +813,7 @@ theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤
 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Submodule.orderBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
 Case conversion may be inaccurate. Consider using '#align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inrₓ'. -/
 theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range := by
   simp (config := { contextual := true }) [disjoint_def, @eq_comm M 0, @eq_comm M₂ 0] <;> intros <;>
@@ -824,7 +824,7 @@ theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_coprod_prod LinearMap.map_coprod_prodₓ'. -/
 theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Submodule R M)
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
@@ -837,22 +837,18 @@ theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Su
   · exact fun x hx => ⟨(0, x), by simp [hx]⟩
 #align linear_map.map_coprod_prod LinearMap.map_coprod_prod
 
-/- warning: linear_map.comap_prod_prod -> LinearMap.comap_prod_prod is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
-but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
-Case conversion may be inaccurate. Consider using '#align linear_map.comap_prod_prod LinearMap.comap_prod_prodₓ'. -/
+#print LinearMap.comap_prod_prod /-
 theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submodule R M₂)
     (q : Submodule R M₃) : comap (prod f g) (p.Prod q) = comap f p ⊓ comap g q :=
   Submodule.ext fun x => Iff.rfl
 #align linear_map.comap_prod_prod LinearMap.comap_prod_prod
+-/
 
 /- warning: linear_map.prod_eq_inf_comap -> LinearMap.prod_eq_inf_comap 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comapₓ'. -/
 theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.comap (LinearMap.fst R M M₂) ⊓ q.comap (LinearMap.snd R M M₂) :=
@@ -863,7 +859,7 @@ theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_mapₓ'. -/
 theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.map (LinearMap.inl R M M₂) ⊔ q.map (LinearMap.inr R M M₂) := by
@@ -874,7 +870,7 @@ theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.hasUnion.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
 Case conversion may be inaccurate. Consider using '#align linear_map.span_inl_union_inr LinearMap.span_inl_union_inrₓ'. -/
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
@@ -885,7 +881,7 @@ theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod LinearMap.ker_prodₓ'. -/
 @[simp]
 theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g) = ker f ⊓ ker g := by
@@ -896,7 +892,7 @@ theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toHasLe.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (SetLike.partialOrder.{max u3 u4, max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Prod.{u3, u4} M₂ M₃) (Submodule.setLike.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (OmegaCompletePartialOrder.toPartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (CompleteLattice.instOmegaCompletePartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Submodule.completeLattice.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (OmegaCompletePartialOrder.toPartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (CompleteLattice.instOmegaCompletePartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Submodule.completeLattice.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_le LinearMap.range_prod_leₓ'. -/
 theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
     range (prod f g) ≤ (range f).Prod (range g) :=
@@ -910,7 +906,7 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (OmegaCompletePartialOrder.toPartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (CompleteLattice.instOmegaCompletePartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Submodule.completeLattice.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)))))) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
+  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (OmegaCompletePartialOrder.toPartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (CompleteLattice.instOmegaCompletePartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Submodule.completeLattice.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)))))) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprodₓ'. -/
 theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
@@ -924,7 +920,7 @@ theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (SetLike.partialOrder.{u4, u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) M₃ (Submodule.setLike.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13)) (Submodule.orderBot.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g)) -> (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)))
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (Submodule.completeLattice.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (LinearMap.range.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) f) (LinearMap.range.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) g)) -> (Eq.{max (succ u4) (succ u2)} (Submodule.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)))
+  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (Submodule.completeLattice.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (LinearMap.range.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) f) (LinearMap.range.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) g)) -> (Eq.{max (succ u4) (succ u2)} (Submodule.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_rangeₓ'. -/
 theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
@@ -959,7 +955,7 @@ variable [Module R M] [Module 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
 Case conversion may be inaccurate. Consider using '#align submodule.sup_eq_range Submodule.sup_eq_rangeₓ'. -/
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
@@ -971,7 +967,7 @@ variable (p : Submodule R M) (q : Submodule 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
 but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
 Case conversion may be inaccurate. Consider using '#align submodule.map_inl Submodule.map_inlₓ'. -/
 @[simp]
 theorem map_inl : p.map (inl R M M₂) = prod p ⊥ :=
@@ -985,7 +981,7 @@ theorem map_inl : p.map (inl R M M₂) = prod p ⊥ :=
 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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
 but is expected to have type
-  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
+  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
 Case conversion may be inaccurate. Consider using '#align submodule.map_inr Submodule.map_inrₓ'. -/
 @[simp]
 theorem map_inr : q.map (inr R M M₂) = prod ⊥ q := by ext ⟨x, y⟩ <;> simp [and_left_comm, eq_comm]
@@ -995,7 +991,7 @@ theorem map_inr : q.map (inr R M M₂) = prod ⊥ q := by ext ⟨x, y⟩ <;> sim
 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
 but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
 Case conversion may be inaccurate. Consider using '#align submodule.comap_fst Submodule.comap_fstₓ'. -/
 @[simp]
 theorem comap_fst : p.comap (fst R M M₂) = prod p ⊤ := by ext ⟨x, y⟩ <;> simp
@@ -1005,59 +1001,43 @@ theorem comap_fst : p.comap (fst R M M₂) = prod p ⊤ := by ext ⟨x, y⟩ <;>
 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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
 but is expected to have type
-  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
+  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
 Case conversion may be inaccurate. Consider using '#align submodule.comap_snd Submodule.comap_sndₓ'. -/
 @[simp]
 theorem comap_snd : q.comap (snd R M M₂) = prod ⊤ q := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_snd Submodule.comap_snd
 
-/- warning: submodule.prod_comap_inl -> Submodule.prod_comap_inl 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.comap.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
-but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.comap.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
-Case conversion may be inaccurate. Consider using '#align submodule.prod_comap_inl Submodule.prod_comap_inlₓ'. -/
+#print Submodule.prod_comap_inl /-
 @[simp]
 theorem prod_comap_inl : (prod p q).comap (inl R M M₂) = p := by ext <;> simp
 #align submodule.prod_comap_inl Submodule.prod_comap_inl
+-/
 
-/- warning: submodule.prod_comap_inr -> Submodule.prod_comap_inr 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.comap.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
-but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.comap.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
-Case conversion may be inaccurate. Consider using '#align submodule.prod_comap_inr Submodule.prod_comap_inrₓ'. -/
+#print Submodule.prod_comap_inr /-
 @[simp]
 theorem prod_comap_inr : (prod p q).comap (inr R M M₂) = q := by ext <;> simp
 #align submodule.prod_comap_inr Submodule.prod_comap_inr
+-/
 
-/- warning: submodule.prod_map_fst -> Submodule.prod_map_fst 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
-but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
-Case conversion may be inaccurate. Consider using '#align submodule.prod_map_fst Submodule.prod_map_fstₓ'. -/
+#print Submodule.prod_map_fst /-
 @[simp]
 theorem prod_map_fst : (prod p q).map (fst R M M₂) = p := by
   ext x <;> simp [(⟨0, zero_mem _⟩ : ∃ x, x ∈ q)]
 #align submodule.prod_map_fst Submodule.prod_map_fst
+-/
 
-/- warning: submodule.prod_map_snd -> Submodule.prod_map_snd 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
-but is expected to have type
-  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
-Case conversion may be inaccurate. Consider using '#align submodule.prod_map_snd Submodule.prod_map_sndₓ'. -/
+#print Submodule.prod_map_snd /-
 @[simp]
 theorem prod_map_snd : (prod p q).map (snd R M M₂) = q := by
   ext x <;> simp [(⟨0, zero_mem _⟩ : ∃ x, x ∈ p)]
 #align submodule.prod_map_snd Submodule.prod_map_snd
+-/
 
 /- warning: submodule.ker_inl -> Submodule.ker_inl 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 Case conversion may be inaccurate. Consider using '#align submodule.ker_inl Submodule.ker_inlₓ'. -/
 @[simp]
 theorem ker_inl : (inl R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inl]
@@ -1067,7 +1047,7 @@ theorem ker_inl : (inl R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_com
 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 Case conversion may be inaccurate. Consider using '#align submodule.ker_inr Submodule.ker_inrₓ'. -/
 @[simp]
 theorem ker_inr : (inr R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inr]
@@ -1077,7 +1057,7 @@ theorem ker_inr : (inr R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_com
 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 Case conversion may be inaccurate. Consider using '#align submodule.range_fst Submodule.range_fstₓ'. -/
 @[simp]
 theorem range_fst : (fst R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_fst]
@@ -1087,7 +1067,7 @@ theorem range_fst : (fst R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_
 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 Case conversion may be inaccurate. Consider using '#align submodule.range_snd Submodule.range_sndₓ'. -/
 @[simp]
 theorem range_snd : (snd R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_snd]
@@ -1128,7 +1108,7 @@ def fstEquiv : Submodule.fst R M 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 Case conversion may be inaccurate. Consider using '#align submodule.fst_map_fst Submodule.fst_map_fstₓ'. -/
 theorem fst_map_fst : (Submodule.fst R M M₂).map (LinearMap.fst R M M₂) = ⊤ := by tidy
 #align submodule.fst_map_fst Submodule.fst_map_fst
@@ -1137,7 +1117,7 @@ theorem fst_map_fst : (Submodule.fst R M M₂).map (LinearMap.fst R M 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 Case conversion may be inaccurate. Consider using '#align submodule.fst_map_snd Submodule.fst_map_sndₓ'. -/
 theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ :=
   by
@@ -1178,7 +1158,7 @@ def sndEquiv : Submodule.snd R M 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 but is expected to have type
-  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
 Case conversion may be inaccurate. Consider using '#align submodule.snd_map_fst Submodule.snd_map_fstₓ'. -/
 theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ :=
   by
@@ -1190,7 +1170,7 @@ theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 but is expected to have type
-  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
 Case conversion may be inaccurate. Consider using '#align submodule.snd_map_snd Submodule.snd_map_sndₓ'. -/
 theorem snd_map_snd : (Submodule.snd R M M₂).map (LinearMap.snd R M M₂) = ⊤ := by tidy
 #align submodule.snd_map_snd Submodule.snd_map_snd
@@ -1224,7 +1204,7 @@ theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) M₂ (Submodule.setLike.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
 but is expected to have type
-  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.completeLattice.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.completeLattice.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
 Case conversion may be inaccurate. Consider using '#align submodule.le_prod_iff Submodule.le_prod_iffₓ'. -/
 theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     q ≤ p₁.Prod p₂ ↔ map (LinearMap.fst R M M₂) q ≤ p₁ ∧ map (LinearMap.snd R M M₂) q ≤ p₂ :=
@@ -1244,7 +1224,7 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
 but is expected to have type
-  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
 Case conversion may be inaccurate. Consider using '#align submodule.prod_le_iff Submodule.prod_le_iffₓ'. -/
 theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     p₁.Prod p₂ ≤ q ↔ map (LinearMap.inl R M M₂) p₁ ≤ q ∧ map (LinearMap.inr R M M₂) p₂ ≤ q :=
@@ -1404,7 +1384,7 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} M₄ M₄ M₄ (instHAdd.{u5} M₄ (AddZeroClass.toHasAdd.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (SubNegMonoid.toAddMonoid.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))))) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ x)) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_apply LinearEquiv.skewProd_applyₓ'. -/
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
@@ -1415,7 +1395,7 @@ theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} (Prod.{u2, u4} M M₃) (coeFn.{max (succ (max u3 u5)) (succ (max u2 u4)), max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (fun (_x : LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) => (Prod.{u3, u5} M₂ M₄) -> (Prod.{u2, u4} M M₃)) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} M M₃ (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (coeFn.{max (succ u5) (succ u4), max (succ u5) (succ u4)} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) (fun (_x : LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) => M₄ -> M₃) (LinearEquiv.hasCoeToFun.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ M₄ M₄ (instHSub.{u5} M₄ (SubNegMonoid.toHasSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_applyₓ'. -/
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
@@ -1441,7 +1421,7 @@ variable [Module R M] [Module R M₂] [Module R M₃]
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.hasTop.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{succ (max u3 u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u3 u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{max (succ u3) (succ u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u4 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{max (succ u3) (succ u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u4 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_eq LinearMap.range_prod_eqₓ'. -/
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
@@ -1510,7 +1490,7 @@ def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.tunnelAux.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
@@ -1540,7 +1520,7 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel LinearMap.tunnelₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
@@ -1557,7 +1537,7 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing LinearMap.tailingₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
@@ -1570,7 +1550,7 @@ def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tailingLinearEquiv._proof_1.{u1} R _inst_1) (LinearMap.tailingLinearEquiv._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
@@ -1582,7 +1562,7 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
@@ -1596,7 +1576,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1612,7 +1592,7 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
@@ -1626,7 +1606,7 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings LinearMap.tailingsₓ'. -/
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
@@ -1637,7 +1617,7 @@ def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_zero LinearMap.tailings_zeroₓ'. -/
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
@@ -1648,7 +1628,7 @@ theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_succ LinearMap.tailings_succₓ'. -/
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
@@ -1659,7 +1639,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1678,7 +1658,7 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailingₓ'. -/
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
@@ -1716,7 +1696,7 @@ def graph : Submodule R (M × 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.Mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.hasMem.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (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_6 _inst_7) (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_6 _inst_7) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.mem_graph_iff LinearMap.mem_graph_iffₓ'. -/
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
@@ -1727,7 +1707,7 @@ theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
 lean 3 declaration is
   forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.hasNeg.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
 but is expected to have type
-  forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.instNegLinearMapToAddCommMonoid.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
+  forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.instNegLinearMapToAddCommMonoid.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
 Case conversion may be inaccurate. Consider using '#align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprodₓ'. -/
 theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
   by
@@ -1740,7 +1720,7 @@ theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u3 u2} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u3 u2} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
 Case conversion may be inaccurate. Consider using '#align linear_map.graph_eq_range_prod LinearMap.graph_eq_range_prodₓ'. -/
 theorem graph_eq_range_prod : f.graph = (LinearMap.id.Prod f).range :=
   by
Diff
@@ -894,7 +894,7 @@ theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g)
 
 /- warning: linear_map.range_prod_le -> LinearMap.range_prod_le is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (SetLike.partialOrder.{max u3 u4, max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Prod.{u3, u4} M₂ M₃) (Submodule.setLike.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toHasLe.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (SetLike.partialOrder.{max u3 u4, max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Prod.{u3, u4} M₂ M₃) (Submodule.setLike.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 but is expected to have type
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (OmegaCompletePartialOrder.toPartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (CompleteLattice.instOmegaCompletePartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Submodule.completeLattice.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_le LinearMap.range_prod_leₓ'. -/
@@ -908,7 +908,7 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
 
 /- warning: linear_map.ker_prod_ker_le_ker_coprod -> LinearMap.ker_prod_ker_le_ker_coprod 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
 but is expected to have type
   forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (OmegaCompletePartialOrder.toPartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (CompleteLattice.instOmegaCompletePartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Submodule.completeLattice.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)))))) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprodₓ'. -/
@@ -1222,7 +1222,7 @@ theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ :=
 
 /- warning: submodule.le_prod_iff -> Submodule.le_prod_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) M₂ (Submodule.setLike.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toHasLe.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) M₂ (Submodule.setLike.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
 but is expected to have type
   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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.completeLattice.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
 Case conversion may be inaccurate. Consider using '#align submodule.le_prod_iff Submodule.le_prod_iffₓ'. -/
@@ -1242,7 +1242,7 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
 
 /- warning: submodule.prod_le_iff -> Submodule.prod_le_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toHasLe.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
 but is expected to have type
   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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
 Case conversion may be inaccurate. Consider using '#align submodule.prod_le_iff Submodule.prod_le_iffₓ'. -/
@@ -1580,7 +1580,7 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 
 /- warning: linear_map.tailing_le_tunnel -> LinearMap.tailing_le_tunnel is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
   forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
@@ -1610,7 +1610,7 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 
 /- warning: linear_map.tailing_sup_tunnel_succ_le_tunnel -> LinearMap.tailing_sup_tunnel_succ_le_tunnel is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toHasLe.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
   forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
Diff
@@ -659,7 +659,7 @@ theorem prodMap_zero : (0 : M →ₗ[R] M₂).Prod_map (0 : M₃ →ₗ[R] M₄)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, 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_11)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, 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_12)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (SMul.smul.{u6, max u2 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.hasSmul.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15) _inst_17) s f) (SMul.smul.{u6, 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_10 _inst_12) (LinearMap.hasSmul.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16) _inst_18) s g)) (SMul.smul.{u6, max (max u2 u3) u4 u5} S (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.hasSmul.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Prod.distribMulAction.{u6, u4, u5} S M₃ M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.sMulCommClass.{u1, u6, u4, u5} R S M₃ 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_11)))) (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_12)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16)))) _inst_17 _inst_18)) s (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} {M₃ : Type.{u5}} {M₄ : Type.{u6}} (S : Type.{u1}) [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : AddCommMonoid.{u4} M₂] [_inst_5 : AddCommMonoid.{u5} M₃] [_inst_6 : AddCommMonoid.{u6} M₄] [_inst_9 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_10 : Module.{u2, u4} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u2, u6} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u1, u5} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u1, u6} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u2, u1, u5} R S M₃ (SMulZeroClass.toSMul.{u2, u5} R M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u5} R M₃ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u5} R M₃ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u1, u5} S M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u5} S M₃ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u5} S M₃ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u2, u1, u6} R S M₄ (SMulZeroClass.toSMul.{u2, u6} R M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u6} R M₄ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u6} R M₄ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12)))) (SMulZeroClass.toSMul.{u1, u6} S M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u6} S M₄ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u6} S M₄ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12), Eq.{max (max (max (succ u3) (succ u4)) (succ u5)) (succ u6)} (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HSMul.hSMul.{u1, max u3 u5, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHSMul.{u1, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSMulLinearMap.{u2, u2, u1, u3, u5} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) _inst_17)) s f) (HSMul.hSMul.{u1, max u4 u6, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (instHSMul.{u1, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instSMulLinearMap.{u2, u2, u1, u4, u6} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16) _inst_18)) s g)) (HSMul.hSMul.{u1, max (max (max u6 u5) u4) u3, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHSMul.{u1, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.instSMulLinearMap.{u2, u2, u1, max u3 u4, max u5 u6} R R S (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Prod.distribMulAction.{u1, u5, u6} S M₃ M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.smulCommClass.{u2, u1, u5, u6} R S M₃ M₄ (MulAction.toSMul.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12))) (MulAction.toSMul.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))) (MulAction.toSMul.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))) _inst_17 _inst_18))) s (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
+  forall {R : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} {M₃ : Type.{u5}} {M₄ : Type.{u6}} (S : Type.{u1}) [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : AddCommMonoid.{u4} M₂] [_inst_5 : AddCommMonoid.{u5} M₃] [_inst_6 : AddCommMonoid.{u6} M₄] [_inst_9 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_10 : Module.{u2, u4} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u2, u6} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u1, u5} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u1, u6} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u2, u1, u5} R S M₃ (SMulZeroClass.toSMul.{u2, u5} R M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u5} R M₃ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u5} R M₃ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u1, u5} S M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u5} S M₃ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u5} S M₃ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u2, u1, u6} R S M₄ (SMulZeroClass.toSMul.{u2, u6} R M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u6} R M₄ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u6} R M₄ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12)))) (SMulZeroClass.toSMul.{u1, u6} S M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u6} S M₄ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u6} S M₄ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12), Eq.{max (max (max (succ u3) (succ u4)) (succ u5)) (succ u6)} (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HSMul.hSMul.{u1, max u3 u5, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHSMul.{u1, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSMulLinearMap.{u2, u2, u1, u3, u5} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) _inst_17)) s f) (HSMul.hSMul.{u1, max u4 u6, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (instHSMul.{u1, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instSMulLinearMap.{u2, u2, u1, u4, u6} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16) _inst_18)) s g)) (HSMul.hSMul.{u1, max (max (max u6 u5) u4) u3, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHSMul.{u1, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.instSMulLinearMap.{u2, u2, u1, max u3 u4, max u5 u6} R R S (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Prod.distribMulAction.{u5, u6, u1} M₃ M₄ S (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.smulCommClass.{u2, u1, u5, u6} R S M₃ M₄ (MulAction.toSMul.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12))) (MulAction.toSMul.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))) (MulAction.toSMul.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))) _inst_17 _inst_18))) s (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_smul LinearMap.prodMap_smulₓ'. -/
 @[simp]
 theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄]
Diff
@@ -813,7 +813,7 @@ theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤
 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Submodule.orderBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
 Case conversion may be inaccurate. Consider using '#align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inrₓ'. -/
 theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range := by
   simp (config := { contextual := true }) [disjoint_def, @eq_comm M 0, @eq_comm M₂ 0] <;> intros <;>
@@ -924,7 +924,7 @@ theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (SetLike.partialOrder.{u4, u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) M₃ (Submodule.setLike.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13)) (Submodule.orderBot.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g)) -> (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)))
 but is expected to have type
-  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (Submodule.completeLattice.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (LinearMap.range.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) f) (LinearMap.range.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) g)) -> (Eq.{max (succ u4) (succ u2)} (Submodule.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)))
+  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (Submodule.completeLattice.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (LinearMap.range.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) f) (LinearMap.range.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) g)) -> (Eq.{max (succ u4) (succ u2)} (Submodule.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_rangeₓ'. -/
 theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
@@ -959,7 +959,7 @@ variable [Module R M] [Module 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
 Case conversion may be inaccurate. Consider using '#align submodule.sup_eq_range Submodule.sup_eq_rangeₓ'. -/
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
@@ -1110,7 +1110,7 @@ def fst : Submodule R (M × 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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) M (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
 but is expected to have type
-  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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
+  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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
 Case conversion may be inaccurate. Consider using '#align submodule.fst_equiv Submodule.fstEquivₓ'. -/
 /-- `M` as a submodule of `M × N` is isomorphic to `M`. -/
 @[simps]
@@ -1160,7 +1160,7 @@ def snd : Submodule R (M × 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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) M₂ (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
 but is expected to have type
-  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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M₂ (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
+  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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M₂ (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
 Case conversion may be inaccurate. Consider using '#align submodule.snd_equiv Submodule.sndEquivₓ'. -/
 /-- `N` as a submodule of `M × N` is isomorphic to `N`. -/
 @[simps]
@@ -1497,7 +1497,7 @@ open Function
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tunnelAux._proof_1.{u1} R _inst_1) (LinearMap.tunnelAux._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x K)) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux LinearMap.tunnelAuxₓ'. -/
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
@@ -1510,7 +1510,7 @@ def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.tunnelAux.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.setLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.addCommMonoid.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
@@ -1570,7 +1570,7 @@ def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tailingLinearEquiv._proof_1.{u1} R _inst_1) (LinearMap.tailingLinearEquiv._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
@@ -1596,7 +1596,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1659,7 +1659,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1678,7 +1678,7 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderSetLike.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailingₓ'. -/
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
@@ -1716,7 +1716,7 @@ def graph : Submodule R (M × 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.Mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.hasMem.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (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_6 _inst_7) (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_6 _inst_7) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.mem_graph_iff LinearMap.mem_graph_iffₓ'. -/
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
Diff
@@ -100,7 +100,7 @@ end
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.fst_apply LinearMap.fst_applyₓ'. -/
 @[simp]
 theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
@@ -111,7 +111,7 @@ theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
 Case conversion may be inaccurate. Consider using '#align linear_map.snd_apply LinearMap.snd_applyₓ'. -/
 @[simp]
 theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
@@ -122,7 +122,7 @@ theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.fst_surjective LinearMap.fst_surjectiveₓ'. -/
 theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0), rfl⟩
 #align linear_map.fst_surjective LinearMap.fst_surjective
@@ -131,7 +131,7 @@ theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.snd_surjective LinearMap.snd_surjectiveₓ'. -/
 theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x), rfl⟩
 #align linear_map.snd_surjective LinearMap.snd_surjective
@@ -155,7 +155,7 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ (max u3 u4))} (M -> (Prod.{u3, u4} M₂ M₃)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (fun (_x : LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) => M -> (Prod.{u3, u4} M₂ M₃)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => M₂) (fun (ᾰ : M) => 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_4 _inst_9 _inst_10) (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_4 _inst_9 _inst_10) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod LinearMap.coe_prodₓ'. -/
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
@@ -294,7 +294,7 @@ end
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M 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_4)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_inl LinearMap.coe_inlₓ'. -/
 @[simp]
 theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
@@ -305,7 +305,7 @@ theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M 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_4)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_apply LinearMap.inl_applyₓ'. -/
 theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
   rfl
@@ -315,7 +315,7 @@ theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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_3)))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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 linear_map.coe_inr LinearMap.coe_inrₓ'. -/
 @[simp]
 theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
@@ -326,7 +326,7 @@ theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (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_3)))))) x)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_apply LinearMap.inr_applyₓ'. -/
 theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) :=
   rfl
@@ -356,7 +356,7 @@ theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id :=
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_injective LinearMap.inl_injectiveₓ'. -/
 theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 #align linear_map.inl_injective LinearMap.inl_injective
@@ -365,7 +365,7 @@ theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_injective LinearMap.inr_injectiveₓ'. -/
 theorem inr_injective : Function.Injective (inr R M M₂) := fun _ => by simp
 #align linear_map.inr_injective LinearMap.inr_injective
@@ -385,7 +385,7 @@ def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} M₃ (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) => (Prod.{u2, u3} M M₂) -> M₃) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _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 u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (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_4 _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_4 _inst_5 _inst_10 _inst_11) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_apply LinearMap.coprod_applyₓ'. -/
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
@@ -546,7 +546,7 @@ def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} ((Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod_map LinearMap.coe_prodMapₓ'. -/
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
@@ -556,7 +556,7 @@ theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Pro
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} (Prod.{u4, u5} M₃ M₄) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} M₃ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_apply LinearMap.prodMap_applyₓ'. -/
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
@@ -714,7 +714,7 @@ variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15))) a₁ a₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₁) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₂))
 but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
 Case conversion may be inaccurate. Consider using '#align linear_map.inl_map_mul LinearMap.inl_map_mulₓ'. -/
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
@@ -725,7 +725,7 @@ theorem inl_map_mul (a₁ a₂ : A) :
 lean 3 declaration is
   forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17))) b₁ b₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₁) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₂))
 but is expected to have type
-  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
 Case conversion may be inaccurate. Consider using '#align linear_map.inr_map_mul LinearMap.inr_map_mulₓ'. -/
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
@@ -874,7 +874,7 @@ theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.hasUnion.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
 Case conversion may be inaccurate. Consider using '#align linear_map.span_inl_union_inr LinearMap.span_inl_union_inrₓ'. -/
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
@@ -1404,7 +1404,7 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} M₄ M₄ M₄ (instHAdd.{u5} M₄ (AddZeroClass.toHasAdd.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (SubNegMonoid.toAddMonoid.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))))) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ x)) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_apply LinearEquiv.skewProd_applyₓ'. -/
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
@@ -1415,7 +1415,7 @@ theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} (Prod.{u2, u4} M M₃) (coeFn.{max (succ (max u3 u5)) (succ (max u2 u4)), max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (fun (_x : LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) => (Prod.{u3, u5} M₂ M₄) -> (Prod.{u2, u4} M M₃)) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} M M₃ (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (coeFn.{max (succ u5) (succ u4), max (succ u5) (succ u4)} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) (fun (_x : LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) => M₄ -> M₃) (LinearEquiv.hasCoeToFun.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ M₄ M₄ (instHSub.{u5} M₄ (SubNegMonoid.toHasSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
 Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_applyₓ'. -/
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
@@ -1510,7 +1510,7 @@ def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.tunnelAux.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
@@ -1540,7 +1540,7 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tunnel LinearMap.tunnelₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
@@ -1557,7 +1557,7 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing LinearMap.tailingₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
@@ -1570,7 +1570,7 @@ def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tailingLinearEquiv._proof_1.{u1} R _inst_1) (LinearMap.tailingLinearEquiv._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
@@ -1582,7 +1582,7 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
@@ -1596,7 +1596,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1612,7 +1612,7 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
@@ -1626,7 +1626,7 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings LinearMap.tailingsₓ'. -/
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
@@ -1637,7 +1637,7 @@ def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_zero LinearMap.tailings_zeroₓ'. -/
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
@@ -1648,7 +1648,7 @@ theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_succ LinearMap.tailings_succₓ'. -/
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
@@ -1659,7 +1659,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
@@ -1678,7 +1678,7 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
 lean 3 declaration is
   forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailingₓ'. -/
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
@@ -1716,7 +1716,7 @@ def graph : Submodule R (M × 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.Mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.hasMem.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (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_6 _inst_7) (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_6 _inst_7) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
 Case conversion may be inaccurate. Consider using '#align linear_map.mem_graph_iff LinearMap.mem_graph_iffₓ'. -/
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
Diff
@@ -462,9 +462,9 @@ theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f'
 
 /- warning: linear_map.coprod_map_prod -> LinearMap.coprod_map_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
 Case conversion may be inaccurate. Consider using '#align linear_map.coprod_map_prod LinearMap.coprod_map_prodₓ'. -/
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
@@ -771,9 +771,9 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃
 
 /- warning: linear_map.range_coprod -> LinearMap.range_coprod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u4) u3} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u4) u3} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_coprod LinearMap.range_coprodₓ'. -/
 theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.coprod g).range = f.range ⊔ g.range :=
   Submodule.ext fun x => by simp [mem_sup]
@@ -801,9 +801,9 @@ theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).rang
 
 /- warning: linear_map.sup_range_inl_inr -> LinearMap.sup_range_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
 Case conversion may be inaccurate. Consider using '#align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inrₓ'. -/
 theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤ :=
   IsCompl.sup_eq_top isCompl_range_inl_inr
@@ -822,9 +822,9 @@ theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range :=
 
 /- warning: linear_map.map_coprod_prod -> LinearMap.map_coprod_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (Sup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
 Case conversion may be inaccurate. Consider using '#align linear_map.map_coprod_prod LinearMap.map_coprod_prodₓ'. -/
 theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Submodule R M)
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
@@ -839,9 +839,9 @@ theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Su
 
 /- warning: linear_map.comap_prod_prod -> LinearMap.comap_prod_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instHasInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
 Case conversion may be inaccurate. Consider using '#align linear_map.comap_prod_prod LinearMap.comap_prod_prodₓ'. -/
 theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submodule R M₂)
     (q : Submodule R M₃) : comap (prod f g) (p.Prod q) = comap f p ⊓ comap g q :=
@@ -850,9 +850,9 @@ theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submo
 
 /- warning: linear_map.prod_eq_inf_comap -> LinearMap.prod_eq_inf_comap 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instHasInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comapₓ'. -/
 theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.comap (LinearMap.fst R M M₂) ⊓ q.comap (LinearMap.snd R M M₂) :=
@@ -861,9 +861,9 @@ theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule R M₂) :
 
 /- warning: linear_map.prod_eq_sup_map -> LinearMap.prod_eq_sup_map 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 but is expected to have type
-  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
 Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_mapₓ'. -/
 theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.map (LinearMap.inl R M M₂) ⊔ q.map (LinearMap.inr R M M₂) := by
@@ -883,9 +883,9 @@ theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
 
 /- warning: linear_map.ker_prod -> LinearMap.ker_prod is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instHasInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Inf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
 Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod LinearMap.ker_prodₓ'. -/
 @[simp]
 theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g) = ker f ⊓ ker g := by
@@ -957,9 +957,9 @@ variable [Module R M] [Module R M₂]
 
 /- warning: submodule.sup_eq_range -> Submodule.sup_eq_range 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasSup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasSup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Sup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
 Case conversion may be inaccurate. Consider using '#align submodule.sup_eq_range Submodule.sup_eq_rangeₓ'. -/
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
@@ -1197,9 +1197,9 @@ theorem snd_map_snd : (Submodule.snd R M M₂).map (LinearMap.snd R M M₂) = 
 
 /- warning: submodule.fst_sup_snd -> Submodule.fst_sup_snd 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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+  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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
 but is expected to have type
-  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Sup.sup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
 Case conversion may be inaccurate. Consider using '#align submodule.fst_sup_snd Submodule.fst_sup_sndₓ'. -/
 theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   by
@@ -1213,9 +1213,9 @@ theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
 
 /- warning: submodule.fst_inf_snd -> Submodule.fst_inf_snd 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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+  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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Inf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
 but is expected to have type
-  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instHasInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instBotSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Inf.inf.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instBotSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
 Case conversion may be inaccurate. Consider using '#align submodule.fst_inf_snd Submodule.fst_inf_sndₓ'. -/
 theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ := by tidy
 #align submodule.fst_inf_snd Submodule.fst_inf_snd
@@ -1439,9 +1439,9 @@ variable [Module R M] [Module R M₂] [Module R M₃]
 
 /- warning: linear_map.range_prod_eq -> LinearMap.range_prod_eq is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.hasTop.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{succ (max u3 u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u3 u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.hasTop.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{succ (max u3 u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u3 u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
 but is expected to have type
-  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{max (succ u3) (succ u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u4 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{max (succ u3) (succ u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u4 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
 Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_eq LinearMap.range_prod_eqₓ'. -/
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
@@ -1610,9 +1610,9 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 
 /- warning: linear_map.tailing_sup_tunnel_succ_le_tunnel -> LinearMap.tailing_sup_tunnel_succ_le_tunnel is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (HasSup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
@@ -1646,9 +1646,9 @@ theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i
 
 /- warning: linear_map.tailings_succ -> LinearMap.tailings_succ is a dubious translation:
 lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (Sup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
 but is expected to have type
-  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (HasSup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (Sup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
 Case conversion may be inaccurate. Consider using '#align linear_map.tailings_succ LinearMap.tailings_succₓ'. -/
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
Diff
@@ -1437,7 +1437,12 @@ variable [AddCommGroup M] [AddCommGroup M₂] [AddCommGroup M₃]
 
 variable [Module R M] [Module R M₂] [Module R M₃]
 
-#print LinearMap.range_prod_eq /-
+/- warning: linear_map.range_prod_eq -> LinearMap.range_prod_eq is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.hasTop.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{succ (max u3 u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u3 u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.addCommMonoid.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Ring.{u1} R] [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : AddCommGroup.{u3} M₂] [_inst_4 : AddCommGroup.{u4} M₃] [_inst_5 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_6 : Module.{u1, u3} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3)] [_inst_7 : Module.{u1, u4} R M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)] {f : LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6} {g : LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7}, (Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))))) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) g)) (Top.top.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5) (Submodule.instTopSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_5))) -> (Eq.{max (succ u3) (succ u4)} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, max u4 u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M (Prod.{u3, u4} M₂ M₃) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4)) _inst_5 (Prod.module.{u1, u3, u4} R M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_6 _inst_7 f g)) (Submodule.prod.{u1, u3, u4} R M₂ (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_6 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₂ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_3) _inst_5 _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f) M₃ (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_7 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.{u1, u1, u2, u4} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) M M₃ (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_4) _inst_5 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) g)))
+Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_eq LinearMap.range_prod_eqₓ'. -/
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
 theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f ⊔ ker g = ⊤) :
@@ -1454,7 +1459,6 @@ theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f 
   · simp only [mem_ker.mp hx', map_add, zero_add]
   · simp [← eq_sub_iff_add_eq.1 H, map_add, add_left_inj, self_eq_add_right, mem_ker.mp hy']
 #align linear_map.range_prod_eq LinearMap.range_prod_eq
--/
 
 end LinearMap
 
@@ -1489,24 +1493,38 @@ variable {N : Type _} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N
 
 open Function
 
-#print LinearMap.tunnelAux /-
+/- warning: linear_map.tunnel_aux -> LinearMap.tunnelAux is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tunnelAux._proof_1.{u1} R _inst_1) (LinearMap.tunnelAux._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)], (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x K)) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)) -> (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3)
+Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux LinearMap.tunnelAuxₓ'. -/
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
 followed by the inclusion of this submodule back into `M`. -/
 def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : M × N →ₗ[R] M :=
   (Kφ.1.Subtype.comp Kφ.2.symm.toLinearMap).comp f
 #align linear_map.tunnel_aux LinearMap.tunnelAux
--/
 
-#print LinearMap.tunnelAux_injective /-
+/- warning: linear_map.tunnel_aux_injective -> LinearMap.tunnelAux_injective is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (LinearMap.tunnelAux.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) -> (forall (Kφ : Sigma.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (fun (K : Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) => LinearEquiv.{u2, u2, u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (RingHomInvPair.ids.{u2} R (Ring.toSemiring.{u2} R _inst_1)) (Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u3} M (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SetLike.instMembership.{u3, u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) x K)) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3 K) _inst_3)), Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) (LinearMap.tunnelAux.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f Kφ)))
+Case conversion may be inaccurate. Consider using '#align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injectiveₓ'. -/
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
   (Subtype.val_injective.comp Kφ.2.symm.Injective).comp i
 #align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injective
--/
 
 noncomputable section
 
+/- warning: linear_map.tunnel' -> LinearMap.tunnel'ₓ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tunnel'ₓ._proof_1.{u1} R _inst_1) (LinearMap.tunnel'ₓ._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3))
+but is expected to have type
+  PUnit.{max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))}
+Case conversion may be inaccurate. Consider using '#align linear_map.tunnel' LinearMap.tunnel'ₓₓ'. -/
 -- Even though we have `noncomputable theory`,
 -- we get an error without another `noncomputable` here.
 /-- Auxiliary definition for `tunnel`. -/
@@ -1518,7 +1536,12 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
         (Submodule.fstEquiv R M N)⟩
 #align linear_map.tunnel' LinearMap.tunnel'ₓ
 
-#print LinearMap.tunnel /-
+/- warning: linear_map.tunnel -> LinearMap.tunnel is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))))
+Case conversion may be inaccurate. Consider using '#align linear_map.tunnel LinearMap.tunnelₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
 -/
@@ -1529,26 +1552,38 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
       rw [Submodule.map_comp, Submodule.map_comp]
       apply Submodule.map_subtype_le⟩
 #align linear_map.tunnel LinearMap.tunnel
--/
 
-#print LinearMap.tailing /-
+/- warning: linear_map.tailing -> LinearMap.tailing is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+Case conversion may be inaccurate. Consider using '#align linear_map.tailing LinearMap.tailingₓ'. -/
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
 -/
 def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M :=
   (Submodule.snd R M N).map (tunnelAux f (tunnel' f i n))
 #align linear_map.tailing LinearMap.tailing
--/
 
-#print LinearMap.tailingLinearEquiv /-
+/- warning: linear_map.tailing_linear_equiv -> LinearMap.tailingLinearEquiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.tailingLinearEquiv._proof_1.{u1} R _inst_1) (LinearMap.tailingLinearEquiv._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) N (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LinearEquiv.{u1, u1, u2, u3} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.instSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) x (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n))) N (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n)) _inst_5
+Case conversion may be inaccurate. Consider using '#align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquivₓ'. -/
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
   ((Submodule.snd R M N).equivMapOfInjective _ (tunnelAux_injective f i (tunnel' f i n))).symm.trans
     (Submodule.sndEquiv R M N)
 #align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquiv
--/
 
-#print LinearMap.tailing_le_tunnel /-
+/- warning: linear_map.tailing_le_tunnel -> LinearMap.tailing_le_tunnel is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnelₓ'. -/
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
   by
@@ -1556,9 +1591,13 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
   rw [Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
--/
 
-#print LinearMap.tailing_disjoint_tunnel_succ /-
+/- warning: linear_map.tailing_disjoint_tunnel_succ -> LinearMap.tailing_disjoint_tunnel_succ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succₓ'. -/
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -1568,9 +1607,13 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
     Submodule.comap_map_eq_of_injective (tunnel_aux_injective _ i _), inf_comm,
     Submodule.fst_inf_snd, Submodule.map_bot]
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
--/
 
-#print LinearMap.tailing_sup_tunnel_succ_le_tunnel /-
+/- warning: linear_map.tailing_sup_tunnel_succ_le_tunnel -> LinearMap.tailing_sup_tunnel_succ_le_tunnel is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), LE.le.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)))) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), LE.le.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Preorder.toLE.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (HasSup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) n))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnelₓ'. -/
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
   by
@@ -1578,30 +1621,46 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
   rw [← Submodule.map_sup, sup_comm, Submodule.fst_sup_snd, Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnel
--/
 
-#print LinearMap.tailings /-
+/- warning: linear_map.tailings -> LinearMap.tailings is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u2, u3} M N) (fun (_x : Prod.{u2, u3} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)
+Case conversion may be inaccurate. Consider using '#align linear_map.tailings LinearMap.tailingsₓ'. -/
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
   partialSups (tailing f i)
 #align linear_map.tailings LinearMap.tailings
--/
 
-#print LinearMap.tailings_zero /-
+/- warning: linear_map.tailings_zero -> LinearMap.tailings_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero)))) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (OfNat.mk.{0} Nat 0 (Zero.zero.{0} Nat Nat.hasZero))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0))) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (OfNat.ofNat.{0} Nat 0 (instOfNatNat 0)))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailings_zero LinearMap.tailings_zeroₓ'. -/
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
   simp [tailings]
 #align linear_map.tailings_zero LinearMap.tailings_zero
--/
 
-#print LinearMap.tailings_succ /-
+/- warning: linear_map.tailings_succ -> LinearMap.tailings_succ is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Eq.{succ u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))) (HasSup.sup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (Submodule.completeLattice.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Eq.{succ u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))) (HasSup.sup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (SemilatticeSup.toHasSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Lattice.toSemilatticeSup.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (ConditionallyCompleteLattice.toLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.toConditionallyCompleteLattice.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailings_succ LinearMap.tailings_succₓ'. -/
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailings f i (n + 1) = tailings f i n ⊔ tailing f i (n + 1) := by simp [tailings]
 #align linear_map.tailings_succ LinearMap.tailings_succ
--/
 
-#print LinearMap.tailings_disjoint_tunnel /-
+/- warning: linear_map.tailings_disjoint_tunnel -> LinearMap.tailings_disjoint_tunnel is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (coeFn.{succ u2, succ u2} (Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (fun (_x : Equiv.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) => (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) -> (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Equiv.hasCoeToFun.{succ u2, succ u2} (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (OrderDual.ofDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (coeFn.{succ u2, succ u2} (OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (fun (_x : OrderHom.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) => Nat -> (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))) (OrderHom.hasCoeToFun.{0, u2} Nat (OrderDual.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (OrderedCancelAddCommMonoid.toPartialOrder.{0} Nat (StrictOrderedSemiring.toOrderedCancelAddCommMonoid.{0} Nat Nat.strictOrderedSemiring))) (OrderDual.preorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne))))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (FunLike.coe.{succ u3, succ u3, succ u3} (Equiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (fun (_x : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) => Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) _x) (Equiv.instFunLikeEquiv.{succ u3, succ u3} (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderDual.ofDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (OrderHom.toFun.{0, u3} Nat (OrderDual.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3)) (PartialOrder.toPreorder.{0} Nat (StrictOrderedSemiring.toPartialOrder.{0} Nat Nat.strictOrderedSemiring)) (OrderDual.preorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (PartialOrder.toPreorder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))))) (LinearMap.tunnel.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i) (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1)))))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnelₓ'. -/
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -1614,14 +1673,17 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
     apply Disjoint.mono_right _ ih
     apply tailing_sup_tunnel_succ_le_tunnel
 #align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnel
--/
 
-#print LinearMap.tailings_disjoint_tailing /-
+/- warning: linear_map.tailings_disjoint_tailing -> LinearMap.tailings_disjoint_tailing is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) (n : Nat), Disjoint.{u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) (Submodule.orderBot.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (LinearMap.tailings.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u1, u2, u3} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat Nat.hasAdd) n (OfNat.ofNat.{0} Nat 1 (OfNat.mk.{0} Nat 1 (One.one.{0} Nat Nat.hasOne)))))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} [_inst_1 : Ring.{u2} R] {N : Type.{u1}} [_inst_2 : AddCommGroup.{u3} M] [_inst_3 : Module.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2)] [_inst_4 : AddCommGroup.{u1} N] [_inst_5 : Module.{u2, u1} R N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)] (f : LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (i : Function.Injective.{max (succ u3) (succ u1), succ u3} (Prod.{u3, u1} M N) M (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), succ u3} (LinearMap.{u2, u2, max u1 u3, u3} R R (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1))) (Prod.{u3, u1} M N) M (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3) (Prod.{u3, u1} M N) (fun (_x : Prod.{u3, u1} M N) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u3, u1} M N) => M) _x) (LinearMap.instFunLikeLinearMap.{u2, u2, max u3 u1, u3} R R (Prod.{u3, u1} M N) M (Ring.toSemiring.{u2} R _inst_1) (Ring.toSemiring.{u2} R _inst_1) (Prod.instAddCommMonoidSum.{u3, u1} M N (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (Prod.module.{u2, u3, u1} R M N (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) (AddCommGroup.toAddCommMonoid.{u1} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R (Ring.toSemiring.{u2} R _inst_1)))) f)) (n : Nat), Disjoint.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (Submodule.completeLattice.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u2, u3} R M (Ring.toSemiring.{u2} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} M _inst_2) _inst_3) (LinearMap.tailings.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i n) (LinearMap.tailing.{u2, u3, u1} R M _inst_1 N _inst_2 _inst_3 _inst_4 _inst_5 f i (HAdd.hAdd.{0, 0, 0} Nat Nat Nat (instHAdd.{0} Nat instAddNat) n (OfNat.ofNat.{0} Nat 1 (instOfNatNat 1))))
+Case conversion may be inaccurate. Consider using '#align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailingₓ'. -/
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
   Disjoint.mono_right (tailing_le_tunnel f i _) (tailings_disjoint_tunnel f i _)
 #align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailing
--/
 
 end Tunnel
 
@@ -1630,7 +1692,12 @@ section Graph
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommGroup M₃] [AddCommGroup M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄] (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄)
 
-#print LinearMap.graph /-
+/- warning: linear_map.graph -> LinearMap.graph 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], (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_6 _inst_7) -> (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], (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_6 _inst_7) -> (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+Case conversion may be inaccurate. Consider using '#align linear_map.graph LinearMap.graphₓ'. -/
 /-- Graph of a linear map. -/
 def graph : Submodule R (M × M₂)
     where
@@ -1644,31 +1711,42 @@ def graph : Submodule R (M × M₂)
     change _ • _ = f (_ • _)
     rw [map_smul, hx]
 #align linear_map.graph LinearMap.graph
--/
 
-#print LinearMap.mem_graph_iff /-
+/- warning: linear_map.mem_graph_iff -> LinearMap.mem_graph_iff 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.Mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.hasMem.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (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_6 _inst_7) (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_6 _inst_7) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7) (x : Prod.{u2, u3} M M₂), Iff (Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) x (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f)) (Eq.{succ u3} M₂ (Prod.snd.{u2, u3} M M₂ x) (FunLike.coe.{max (succ u2) (succ u3), 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_6 _inst_7) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)))
+Case conversion may be inaccurate. Consider using '#align linear_map.mem_graph_iff LinearMap.mem_graph_iffₓ'. -/
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
   Iff.rfl
 #align linear_map.mem_graph_iff LinearMap.mem_graph_iff
--/
 
-#print LinearMap.graph_eq_ker_coprod /-
+/- warning: linear_map.graph_eq_ker_coprod -> LinearMap.graph_eq_ker_coprod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.hasNeg.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
+but is expected to have type
+  forall {R : Type.{u1}} {M₃ : Type.{u2}} {M₄ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_4 : AddCommGroup.{u2} M₃] [_inst_5 : AddCommGroup.{u3} M₄] [_inst_8 : Module.{u1, u2} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4)] [_inst_9 : Module.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)] (g : LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M₃ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9)) (LinearMap.graph.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 g) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M₃ M₄) M₄ (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M₃ M₄) M₄ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5)) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (Prod.module.{u1, u2, u3} R M₃ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u3} R M₃ M₄ M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9 _inst_9 (Neg.neg.{max u2 u3} (LinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_8 _inst_9) (LinearMap.instNegLinearMapToAddCommMonoid.{u1, u1, u2, u3} R R M₃ M₄ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₃ _inst_4) _inst_5 _inst_8 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g) (LinearMap.id.{u1, u3} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₄ _inst_5) _inst_9)))
+Case conversion may be inaccurate. Consider using '#align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprodₓ'. -/
 theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
   by
   ext x
   change _ = _ ↔ -g x.1 + x.2 = _
   rw [add_comm, add_neg_eq_zero]
 #align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprod
--/
 
-#print LinearMap.graph_eq_range_prod /-
+/- warning: linear_map.graph_eq_range_prod -> LinearMap.graph_eq_range_prod 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (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_2 _inst_3 _inst_6 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.graph.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 f) (LinearMap.range.{u1, u1, u2, max u2 u3, max u3 u2} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_2 _inst_2 _inst_3 _inst_6 _inst_6 _inst_7 (LinearMap.id.{u1, u2} R M _inst_1 _inst_2 _inst_6) f))
+Case conversion may be inaccurate. Consider using '#align linear_map.graph_eq_range_prod LinearMap.graph_eq_range_prodₓ'. -/
 theorem graph_eq_range_prod : f.graph = (LinearMap.id.Prod f).range :=
   by
   ext x
   exact ⟨fun hx => ⟨x.1, Prod.ext rfl hx.symm⟩, fun ⟨u, hu⟩ => hu ▸ rfl⟩
 #align linear_map.graph_eq_range_prod LinearMap.graph_eq_range_prod
--/
 
 end Graph
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.prod
-! leanprover-community/mathlib commit 57a30493469f1a4338a5b3237b31ad8e4f3dd661
+! leanprover-community/mathlib commit 23aa88e32dcc9d2a24cca7bc23268567ed4cd7d6
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.Algebra.Algebra.Prod
 
 /-! ### Products of modules
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines constructors for linear maps whose domains or codomains are products.
 
 It contains theorems relating these to each other, as well as to `submodule.prod`, `submodule.map`,
Diff
@@ -65,6 +65,12 @@ section
 
 variable (R M M₂)
 
+/- warning: linear_map.fst -> LinearMap.fst 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9
+Case conversion may be inaccurate. Consider using '#align linear_map.fst LinearMap.fstₓ'. -/
 /-- The first projection of a product is a linear map. -/
 def fst : M × M₂ →ₗ[R] M where
   toFun := Prod.fst
@@ -72,6 +78,12 @@ def fst : M × M₂ →ₗ[R] M where
   map_smul' x y := rfl
 #align linear_map.fst LinearMap.fst
 
+/- warning: linear_map.snd -> LinearMap.snd 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10
+Case conversion may be inaccurate. Consider using '#align linear_map.snd LinearMap.sndₓ'. -/
 /-- The second projection of a product is a linear map. -/
 def snd : M × M₂ →ₗ[R] M₂ where
   toFun := Prod.snd
@@ -81,22 +93,52 @@ def snd : M × M₂ →ₗ[R] M₂ where
 
 end
 
+/- warning: linear_map.fst_apply -> LinearMap.fst_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u2} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.fst.{u2, u3} M M₂ x)
+Case conversion may be inaccurate. Consider using '#align linear_map.fst_apply LinearMap.fst_applyₓ'. -/
 @[simp]
 theorem fst_apply (x : M × M₂) : fst R M M₂ x = x.1 :=
   rfl
 #align linear_map.fst_apply LinearMap.fst_apply
 
+/- warning: linear_map.snd_apply -> LinearMap.snd_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : Prod.{u2, u3} M M₂), Eq.{succ u3} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₂) x) (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.snd.{u2, u3} M M₂ x)
+Case conversion may be inaccurate. Consider using '#align linear_map.snd_apply LinearMap.snd_applyₓ'. -/
 @[simp]
 theorem snd_apply (x : M × M₂) : snd R M M₂ x = x.2 :=
   rfl
 #align linear_map.snd_apply LinearMap.snd_apply
 
+/- warning: linear_map.fst_surjective -> LinearMap.fst_surjective 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) => (Prod.{u2, u3} M M₂) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M M₂) M (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u2} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.fst_surjective LinearMap.fst_surjectiveₓ'. -/
 theorem fst_surjective : Function.Surjective (fst R M M₂) := fun x => ⟨(x, 0), rfl⟩
 #align linear_map.fst_surjective LinearMap.fst_surjective
 
+/- warning: linear_map.snd_surjective -> LinearMap.snd_surjective 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (coeFn.{max (succ (max u2 u3)) (succ u3), max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (fun (_x : LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) => (Prod.{u2, u3} M M₂) -> M₂) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Surjective.{max (succ u2) (succ u3), succ u3} (Prod.{u2, u3} M M₂) M₂ (FunLike.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3), succ u3} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.snd_surjective LinearMap.snd_surjectiveₓ'. -/
 theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x), rfl⟩
 #align linear_map.snd_surjective LinearMap.snd_surjective
 
+/- warning: linear_map.prod -> LinearMap.prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _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_3 _inst_4 _inst_9 _inst_10) -> (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _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_3 _inst_4 _inst_9 _inst_10) -> (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod LinearMap.prodₓ'. -/
 /-- The prod of two linear maps is a linear map. -/
 @[simps]
 def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M₃
@@ -106,25 +148,47 @@ def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M
   map_smul' c x := by simp only [Pi.prod, Prod.smul_mk, map_smul, RingHom.id_apply]
 #align linear_map.prod LinearMap.prod
 
+/- warning: linear_map.coe_prod -> LinearMap.coe_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ (max u3 u4))} (M -> (Prod.{u3, u4} M₂ M₃)) (coeFn.{max (succ u2) (succ (max u3 u4)), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (fun (_x : LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) => M -> (Prod.{u3, u4} M₂ M₃)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => M₂) (fun (ᾰ : M) => 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_4 _inst_9 _inst_10) (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_4 _inst_9 _inst_10) => M -> M₂) (LinearMap.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} 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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u4)} (forall (ᾰ : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u3, u4} M₂ M₃) ᾰ) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), succ u2, max (succ u3) (succ u4)} (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u3, u4} M₂ M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g)) (Pi.prod.{u2, u3, u4} M (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) ᾰ) (fun (ᾰ : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) ᾰ) (FunLike.coe.{max (succ u2) (succ u3), 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_4 _inst_9 _inst_10) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod LinearMap.coe_prodₓ'. -/
 theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.Prod g) = Pi.prod f g :=
   rfl
 #align linear_map.coe_prod LinearMap.coe_prod
 
+#print LinearMap.fst_prod /-
 @[simp]
 theorem fst_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (fst R M₂ M₃).comp (prod f g) = f := by
   ext <;> rfl
 #align linear_map.fst_prod LinearMap.fst_prod
+-/
 
+#print LinearMap.snd_prod /-
 @[simp]
 theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M₃).comp (prod f g) = g := by
   ext <;> rfl
 #align linear_map.snd_prod LinearMap.snd_prod
+-/
 
+/- warning: linear_map.pair_fst_snd -> LinearMap.pair_fst_snd 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prod.{u1, max u2 u3, u2, u3} R (Prod.{u2, u3} M M₂) M M₂ _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 _inst_10 (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u2 u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prod.{u1, max u2 u3, u2, u3} R (Prod.{u2, u3} M M₂) M M₂ _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 _inst_10 (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.pair_fst_snd LinearMap.pair_fst_sndₓ'. -/
 @[simp]
 theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id :=
   FunLike.coe_injective Pi.prod_fst_snd
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
 
+/- warning: linear_map.prod_equiv -> LinearMap.prodEquiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u3} S M₂ _inst_2 _inst_4] [_inst_16 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_17 : SMulCommClass.{u1, u5, u3} R S M₂ (SMulZeroClass.toHasSmul.{u1, u3} R M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (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_4))) (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_4))) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)))) (SMulZeroClass.toHasSmul.{u5, u3} S M₂ (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (SMulWithZero.toSmulZeroClass.{u5, u3} S M₂ (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)))) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (MulActionWithZero.toSMulWithZero.{u5, u3} S M₂ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddZeroClass.toHasZero.{u3} M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4))) (Module.toMulActionWithZero.{u5, u3} S M₂ _inst_2 _inst_4 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u5, 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_11)))) (SMulZeroClass.toHasSmul.{u5, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M₃ (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_16))))], LinearEquiv.{u5, u5, max (max u2 u3) u2 u4, max u2 u3 u4} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u2 u3, max u2 u4} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (Prod.addCommMonoid.{max u2 u3, max u2 u4} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u3, max u2 u4} S (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.module.{u1, u1, u5, u2, u3} R R S M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.module.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.module.{u1, u1, u5, u2, max u3 u4} R R S M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u5, u3, u4} S M₂ M₃ _inst_2 _inst_4 _inst_5 _inst_15 _inst_16) (LinearMap.prodEquiv._proof_1.{u1, u5, u3, u4} R M₂ M₃ S _inst_1 _inst_2 _inst_4 _inst_5 _inst_10 _inst_11 _inst_15 _inst_16 _inst_17 _inst_18))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u3} S M₂ _inst_2 _inst_4] [_inst_16 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_17 : SMulCommClass.{u1, u5, u3} R S M₂ (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (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_4)) (MulActionWithZero.toSMulWithZero.{u1, u3} R M₂ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (Module.toMulActionWithZero.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)))) (SMulZeroClass.toSMul.{u5, u3} S M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (SMulWithZero.toSMulZeroClass.{u5, u3} S M₂ (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (MulActionWithZero.toSMulWithZero.{u5, u3} S M₂ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)) (Module.toMulActionWithZero.{u5, u3} S M₂ _inst_2 _inst_4 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u5, u4} R S M₃ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u5, u4} S M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M₃ (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_16))))], LinearEquiv.{u5, u5, max (max u4 u2) u3 u2, max (max u4 u3) u2} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u3 u2, max u4 u2} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11)) (Prod.instAddCommMonoidSum.{max u2 u3, max u2 u4} (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u3, max u2 u4} S (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_4 _inst_9 _inst_10) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, u3} R R S M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, max u3 u4} R R S M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u5, u3, u4} S M₂ M₃ _inst_2 _inst_4 _inst_5 _inst_15 _inst_16) (Prod.smulCommClass.{u1, u5, u3, u4} R S M₂ M₃ (MulAction.toSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))) (MulAction.toSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u5, u3} S M₂ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (DistribMulAction.toMulAction.{u5, u3} S M₂ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4) (Module.toDistribMulAction.{u5, u3} S M₂ _inst_2 _inst_4 _inst_15))) (MulAction.toSMul.{u5, u4} S M₃ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (DistribMulAction.toMulAction.{u5, u4} S M₃ (MonoidWithZero.toMonoid.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u5, u4} S M₃ _inst_2 _inst_5 _inst_16))) _inst_17 _inst_18))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_equiv LinearMap.prodEquivₓ'. -/
 /-- Taking the product of two maps with the same domain is equivalent to taking the product of
 their codomains.
 
@@ -145,16 +209,34 @@ section
 
 variable (R M M₂)
 
+/- warning: linear_map.inl -> LinearMap.inl 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
+Case conversion may be inaccurate. Consider using '#align linear_map.inl LinearMap.inlₓ'. -/
 /-- The left injection into a product is a linear map. -/
 def inl : M →ₗ[R] M × M₂ :=
   prod LinearMap.id 0
 #align linear_map.inl LinearMap.inl
 
+/- warning: linear_map.inr -> LinearMap.inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)
+Case conversion may be inaccurate. Consider using '#align linear_map.inr LinearMap.inrₓ'. -/
 /-- The right injection into a product is a linear map. -/
 def inr : M₂ →ₗ[R] M × M₂ :=
   prod 0 LinearMap.id
 #align linear_map.inr LinearMap.inr
 
+/- warning: linear_map.range_inl -> LinearMap.range_inl 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.range_inl LinearMap.range_inlₓ'. -/
 theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
   by
   ext x
@@ -166,10 +248,22 @@ theorem range_inl : range (inl R M M₂) = ker (snd R M M₂) :=
     exact ⟨x.fst, Prod.ext rfl h.symm⟩
 #align linear_map.range_inl LinearMap.range_inl
 
+/- warning: linear_map.ker_snd -> LinearMap.ker_snd 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.ker_snd LinearMap.ker_sndₓ'. -/
 theorem ker_snd : ker (snd R M M₂) = range (inl R M M₂) :=
   Eq.symm <| range_inl R M M₂
 #align linear_map.ker_snd LinearMap.ker_snd
 
+/- warning: linear_map.range_inr -> LinearMap.range_inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.range_inr LinearMap.range_inrₓ'. -/
 theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
   by
   ext x
@@ -181,88 +275,194 @@ theorem range_inr : range (inr R M M₂) = ker (fst R M M₂) :=
     exact ⟨x.snd, Prod.ext h.symm rfl⟩
 #align linear_map.range_inr LinearMap.range_inr
 
+/- warning: linear_map.ker_fst -> LinearMap.ker_fst 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.ker.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.ker_fst LinearMap.ker_fstₓ'. -/
 theorem ker_fst : ker (fst R M M₂) = range (inr R M M₂) :=
   Eq.symm <| range_inr R M M₂
 #align linear_map.ker_fst LinearMap.ker_fst
 
 end
 
+/- warning: linear_map.coe_inl -> LinearMap.coe_inl 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M 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_4)))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (x : M) => Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+Case conversion may be inaccurate. Consider using '#align linear_map.coe_inl LinearMap.coe_inlₓ'. -/
 @[simp]
 theorem coe_inl : (inl R M M₂ : M → M × M₂) = fun x => (x, 0) :=
   rfl
 #align linear_map.coe_inl LinearMap.coe_inl
 
+/- warning: linear_map.inl_apply -> LinearMap.inl_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M 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_4)))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ x (OfNat.ofNat.{u3} M₂ 0 (Zero.toOfNat0.{u3} M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_4)))))
+Case conversion may be inaccurate. Consider using '#align linear_map.inl_apply LinearMap.inl_applyₓ'. -/
 theorem inl_apply (x : M) : inl R M M₂ x = (x, 0) :=
   rfl
 #align linear_map.inl_apply LinearMap.inl_apply
 
+/- warning: linear_map.coe_inr -> LinearMap.coe_inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} ((fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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_3)))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (forall (a : M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) a) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.mk.{u2, u3} M M₂ (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 linear_map.coe_inr LinearMap.coe_inrₓ'. -/
 @[simp]
 theorem coe_inr : (inr R M M₂ : M₂ → M × M₂) = Prod.mk 0 :=
   rfl
 #align linear_map.coe_inr LinearMap.coe_inr
 
+/- warning: linear_map.inr_apply -> LinearMap.inr_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (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_3)))))) x)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (x : M₂), Eq.{max (succ u2) (succ u3)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) x) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) x) (Prod.mk.{u2, u3} M M₂ (OfNat.ofNat.{u2} M 0 (Zero.toOfNat0.{u2} M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_3)))) x)
+Case conversion may be inaccurate. Consider using '#align linear_map.inr_apply LinearMap.inr_applyₓ'. -/
 theorem inr_apply (x : M₂) : inr R M M₂ x = (0, x) :=
   rfl
 #align linear_map.inr_apply LinearMap.inr_apply
 
+/- warning: linear_map.inl_eq_prod -> LinearMap.inl_eq_prod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_3 _inst_3 _inst_4 _inst_9 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (OfNat.mk.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.zero.{max u2 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_4 _inst_9 _inst_10) (LinearMap.hasZero.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u2, u2, u3} R M M M₂ _inst_1 _inst_3 _inst_3 _inst_4 _inst_9 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u3 u2} (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_4 _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (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_4 _inst_9 _inst_10) (LinearMap.instZeroLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align linear_map.inl_eq_prod LinearMap.inl_eq_prodₓ'. -/
 theorem inl_eq_prod : inl R M M₂ = prod LinearMap.id 0 :=
   rfl
 #align linear_map.inl_eq_prod LinearMap.inl_eq_prod
 
+/- warning: linear_map.inr_eq_prod -> LinearMap.inr_eq_prod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u3, u2, u3} R M₂ M M₂ _inst_1 _inst_4 _inst_3 _inst_4 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (OfNat.mk.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (Zero.zero.{max u3 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_4 _inst_3 _inst_10 _inst_9) (LinearMap.hasZero.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.prod.{u1, u3, u2, u3} R M₂ M M₂ _inst_1 _inst_4 _inst_3 _inst_4 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M _inst_4 _inst_3 _inst_10 _inst_9) 0 (Zero.toOfNat0.{max u2 u3} (LinearMap.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M _inst_4 _inst_3 _inst_10 _inst_9) (LinearMap.instZeroLinearMap.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.inr_eq_prod LinearMap.inr_eq_prodₓ'. -/
 theorem inr_eq_prod : inr R M M₂ = prod 0 LinearMap.id :=
   rfl
 #align linear_map.inr_eq_prod LinearMap.inr_eq_prod
 
+/- warning: linear_map.inl_injective -> LinearMap.inl_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u2, max (succ u2) (succ u3)} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.inl_injective LinearMap.inl_injectiveₓ'. -/
 theorem inl_injective : Function.Injective (inl R M M₂) := fun _ => by simp
 #align linear_map.inl_injective LinearMap.inl_injective
 
+/- warning: linear_map.inr_injective -> LinearMap.inr_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_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Function.Injective.{succ u3, max (succ u2) (succ u3)} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.inr_injective LinearMap.inr_injectiveₓ'. -/
 theorem inr_injective : Function.Injective (inr R M M₂) := fun _ => by simp
 #align linear_map.inr_injective LinearMap.inr_injective
 
+/- warning: linear_map.coprod -> LinearMap.coprod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_11) -> (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_11) -> (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11)
+Case conversion may be inaccurate. Consider using '#align linear_map.coprod LinearMap.coprodₓ'. -/
 /-- The coprod function `λ x : M × M₂, f x.1 + g x.2` is a linear map. -/
 def coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : M × M₂ →ₗ[R] M₃ :=
   f.comp (fst _ _ _) + g.comp (snd _ _ _)
 #align linear_map.coprod LinearMap.coprod
 
+/- warning: linear_map.coprod_apply -> LinearMap.coprod_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} M₃ (coeFn.{max (succ (max u2 u3)) (succ u4), max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (fun (_x : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) => (Prod.{u2, u3} M M₂) -> M₃) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _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 u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (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_4 _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_4 _inst_5 _inst_10 _inst_11) => M₂ -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (x : Prod.{u2, u3} M M₂), Eq.{succ u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₃) x) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (succ u2) (succ u3), succ u4} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) x) (HAdd.hAdd.{u4, u4, u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) (Prod.snd.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (instHAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddZeroClass.toAdd.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddMonoid.toAddZeroClass.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) (AddCommMonoid.toAddMonoid.{u4} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) _inst_5)))) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u4), 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_10 _inst_11) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+Case conversion may be inaccurate. Consider using '#align linear_map.coprod_apply LinearMap.coprod_applyₓ'. -/
 @[simp]
 theorem coprod_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (x : M × M₂) :
     coprod f g x = f x.1 + g x.2 :=
   rfl
 #align linear_map.coprod_apply LinearMap.coprod_apply
 
+#print LinearMap.coprod_inl /-
 @[simp]
 theorem coprod_inl (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (coprod f g).comp (inl R M M₂) = f := by
   ext <;> simp only [map_zero, add_zero, coprod_apply, inl_apply, comp_apply]
 #align linear_map.coprod_inl LinearMap.coprod_inl
+-/
 
+#print LinearMap.coprod_inr /-
 @[simp]
 theorem coprod_inr (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (coprod f g).comp (inr R M M₂) = g := by
   ext <;> simp only [map_zero, coprod_apply, inr_apply, zero_add, comp_apply]
 #align linear_map.coprod_inr LinearMap.coprod_inr
+-/
 
+/- warning: linear_map.coprod_inl_inr -> LinearMap.coprod_inl_inr 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.coprod.{u1, u2, u3, max u2 u3} R M M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_3 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.coprod.{u1, u2, u3, max u2 u3} R M M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_3 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_9 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.coprod_inl_inr LinearMap.coprod_inl_inrₓ'. -/
 @[simp]
 theorem coprod_inl_inr : coprod (inl R M M₂) (inr R M M₂) = LinearMap.id := by
   ext <;>
     simp only [Prod.mk_add_mk, add_zero, id_apply, coprod_apply, inl_apply, inr_apply, zero_add]
 #align linear_map.coprod_inl_inr LinearMap.coprod_inl_inr
 
+/- warning: linear_map.comp_coprod -> LinearMap.comp_coprod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (g₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₂ : 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_10 _inst_11), Eq.{max (succ (max u2 u3)) (succ u5)} (LinearMap.{u1, u1, max u2 u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₄ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_12) (LinearMap.comp.{u1, u1, u1, max u2 u3, u4, u5} R R R (Prod.{u2, u3} M M₂) M₃ M₄ _inst_1 _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 _inst_12 (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 (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 g₁ g₂)) (LinearMap.coprod.{u1, u2, u3, u5} R M M₂ M₄ _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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₁) (LinearMap.comp.{u1, u1, u1, u3, u4, u5} R R R M₂ M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 (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.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (g₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₂ : 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_10 _inst_11), Eq.{max (max (succ u2) (succ u3)) (succ u5)} (LinearMap.{u1, u1, max u2 u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₄ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_12) (LinearMap.comp.{u1, u1, u1, max u2 u3, u4, u5} R R R (Prod.{u2, u3} M M₂) M₃ M₄ _inst_1 _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 g₁ g₂)) (LinearMap.coprod.{u1, u2, u3, u5} R M M₂ M₄ _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f g₁) (LinearMap.comp.{u1, u1, u1, u3, u4, u5} R R R M₂ M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f g₂))
+Case conversion may be inaccurate. Consider using '#align linear_map.comp_coprod LinearMap.comp_coprodₓ'. -/
 theorem comp_coprod (f : M₃ →ₗ[R] M₄) (g₁ : M →ₗ[R] M₃) (g₂ : M₂ →ₗ[R] M₃) :
     f.comp (g₁.coprod g₂) = (f.comp g₁).coprod (f.comp g₂) :=
   ext fun x => f.map_add (g₁ x.1) (g₂ x.2)
 #align linear_map.comp_coprod LinearMap.comp_coprod
 
+/- warning: linear_map.fst_eq_coprod -> LinearMap.fst_eq_coprod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u2} R M M₂ M _inst_1 _inst_3 _inst_4 _inst_3 _inst_9 _inst_10 _inst_9 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (OfNat.mk.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (Zero.zero.{max u3 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_4 _inst_3 _inst_10 _inst_9) (LinearMap.hasZero.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_9) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u2} R M M₂ M _inst_1 _inst_3 _inst_4 _inst_3 _inst_9 _inst_10 _inst_9 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (OfNat.ofNat.{max u3 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_4 _inst_3 _inst_10 _inst_9) 0 (Zero.toOfNat0.{max u3 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_4 _inst_3 _inst_10 _inst_9) (LinearMap.instZeroLinearMap.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_4 _inst_3 _inst_10 _inst_9 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))
+Case conversion may be inaccurate. Consider using '#align linear_map.fst_eq_coprod LinearMap.fst_eq_coprodₓ'. -/
 theorem fst_eq_coprod : fst R M M₂ = coprod LinearMap.id 0 := by ext <;> simp
 #align linear_map.fst_eq_coprod LinearMap.fst_eq_coprod
 
+/- warning: linear_map.snd_eq_coprod -> LinearMap.snd_eq_coprod 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ (max u2 u3)) (succ u3)} (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u3} R M M₂ M₂ _inst_1 _inst_3 _inst_4 _inst_4 _inst_9 _inst_10 _inst_10 (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (OfNat.mk.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.zero.{max u2 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_4 _inst_9 _inst_10) (LinearMap.hasZero.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_10) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (LinearMap.coprod.{u1, u2, u3, u3} R M M₂ M₂ _inst_1 _inst_3 _inst_4 _inst_4 _inst_9 _inst_10 _inst_10 (OfNat.ofNat.{max u3 u2} (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_4 _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u3 u2} (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_4 _inst_9 _inst_10) (LinearMap.instZeroLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.snd_eq_coprod LinearMap.snd_eq_coprodₓ'. -/
 theorem snd_eq_coprod : snd R M M₂ = coprod 0 LinearMap.id := by ext <;> simp
 #align linear_map.snd_eq_coprod LinearMap.snd_eq_coprod
 
+/- warning: linear_map.coprod_comp_prod -> LinearMap.coprod_comp_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_10 _inst_12) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (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_4 _inst_9 _inst_10) (g' : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.comp.{u1, u1, u1, u2, max u3 u4, u5} R R R M (Prod.{u3, u4} M₂ M₃) M₄ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_6 _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) _inst_12 (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))) (LinearMap.coprod.{u1, u3, u4, u5} R M₂ M₃ M₄ _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 f g) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f' g')) (HAdd.hAdd.{max u2 u5, max u2 u5, max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (instHAdd.{max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.hasAdd.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_3 _inst_6 _inst_9 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u2, u3, u5} R R R M M₂ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (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 f') (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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 g'))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_10 _inst_12) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (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_4 _inst_9 _inst_10) (g' : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11), Eq.{max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.comp.{u1, u1, u1, u2, max u3 u4, u5} R R R M (Prod.{u3, u4} M₂ M₃) M₄ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_4 _inst_5) _inst_6 _inst_9 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_4 _inst_5 _inst_10 _inst_11) _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u3, u4, u5} R M₂ M₃ M₄ _inst_1 _inst_4 _inst_5 _inst_6 _inst_10 _inst_11 _inst_12 f g) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f' g')) (HAdd.hAdd.{max u2 u5, max u2 u5, max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (instHAdd.{max u2 u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_3 _inst_6 _inst_9 _inst_12) (LinearMap.instAddLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_3 _inst_6 _inst_9 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.comp.{u1, u1, u1, u2, u3, u5} R R R M M₂ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_6 _inst_9 _inst_10 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f f') (LinearMap.comp.{u1, u1, u1, u2, u4, u5} R R R M M₃ M₄ _inst_1 _inst_1 _inst_1 _inst_3 _inst_5 _inst_6 _inst_9 _inst_11 _inst_12 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g g'))
+Case conversion may be inaccurate. Consider using '#align linear_map.coprod_comp_prod LinearMap.coprod_comp_prodₓ'. -/
 @[simp]
 theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f' : M →ₗ[R] M₂) (g' : M →ₗ[R] M₃) :
     (f.coprod g).comp (f'.Prod g') = f.comp f' + g.comp g' :=
   rfl
 #align linear_map.coprod_comp_prod LinearMap.coprod_comp_prod
 
+/- warning: linear_map.coprod_map_prod -> LinearMap.coprod_map_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_11) (S : Submodule.{u1, u2} R M _inst_1 _inst_3 _inst_9) (S' : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_3 _inst_9 S M₂ _inst_4 _inst_10 S')) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_10 _inst_11) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+Case conversion may be inaccurate. Consider using '#align linear_map.coprod_map_prod LinearMap.coprod_map_prodₓ'. -/
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
     (S' : Submodule R M₂) : (Submodule.prod S S').map (LinearMap.coprod f g) = S.map f ⊔ S'.map g :=
@@ -273,6 +473,12 @@ theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Su
     exact Set.image_prod fun m m₂ => f m + g m₂
 #align linear_map.coprod_map_prod LinearMap.coprod_map_prod
 
+/- warning: linear_map.coprod_equiv -> LinearMap.coprodEquiv is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_16 : SMulCommClass.{u1, u5, 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_11)))) (SMulZeroClass.toHasSmul.{u5, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u5, u4} S M₃ (MulZeroClass.toHasZero.{u5} S (MulZeroOneClass.toMulZeroClass.{u5} S (MonoidWithZero.toMulZeroOneClass.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_15))))], LinearEquiv.{u5, u5, max (max u2 u4) u3 u4, max (max u2 u3) u4} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u2 u4, max u3 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.addCommMonoid.{max u2 u4, max u3 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u4, max u3 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.module.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16) (LinearMap.module.{u1, u1, u5, u3, u4} R R S M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)) (LinearMap.module.{u1, u1, u5, max u2 u3, u4} R R S (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} (S : Type.{u5}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u5} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_15 : Module.{u5, u4} S M₃ _inst_2 _inst_5] [_inst_16 : SMulCommClass.{u1, u5, u4} R S M₃ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u5, u4} S M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u5, u4} S M₃ (MonoidWithZero.toZero.{u5} S (Semiring.toMonoidWithZero.{u5} S _inst_2)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u5, u4} S M₃ (Semiring.toMonoidWithZero.{u5} S _inst_2) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u5, u4} S M₃ _inst_2 _inst_5 _inst_15))))], LinearEquiv.{u5, u5, max (max u4 u3) u4 u2, max u4 u3 u2} S S _inst_2 _inst_2 (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHom.id.{u5} S (Semiring.toNonAssocSemiring.{u5} S _inst_2)) (RingHomInvPair.ids.{u5} S _inst_2) (RingHomInvPair.ids.{u5} S _inst_2) (Prod.{max u4 u2, max u4 u3} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) (Prod.instAddCommMonoidSum.{max u2 u4, max u3 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u5, max u2 u4, max u3 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_11) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, u3, u4} R R S M₂ M₃ _inst_1 _inst_1 _inst_4 _inst_5 _inst_10 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u5, max u2 u3, u4} R R S (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_16)
+Case conversion may be inaccurate. Consider using '#align linear_map.coprod_equiv LinearMap.coprodEquivₓ'. -/
 /-- Taking the product of two maps with the same codomain is equivalent to taking the product of
 their domains.
 
@@ -294,11 +500,23 @@ def coprodEquiv [Module S M₃] [SMulCommClass R S M₃] :
     simp only [smul_add, smul_apply, Prod.smul_snd, Prod.smul_fst, coprod_apply]
 #align linear_map.coprod_equiv LinearMap.coprodEquiv
 
+/- warning: linear_map.prod_ext_iff -> LinearMap.prod_ext_iff is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, Iff (Eq.{max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g) (And (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, Iff (Eq.{max (max (succ u2) (succ u3)) (succ u4)} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g) (And (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_ext_iff LinearMap.prod_ext_iffₓ'. -/
 theorem prod_ext_iff {f g : M × M₂ →ₗ[R] M₃} :
     f = g ↔ f.comp (inl _ _ _) = g.comp (inl _ _ _) ∧ f.comp (inr _ _ _) = g.comp (inr _ _ _) :=
   (coprodEquiv ℕ).symm.Injective.eq_iff.symm.trans Prod.ext_iff
 #align linear_map.prod_ext_iff LinearMap.prod_ext_iff
 
+/- warning: linear_map.prod_ext -> LinearMap.prod_ext is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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 (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (Eq.{max (succ (max u2 u3)) (succ u4)} (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g)
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] {f : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11} {g : LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11}, (Eq.{max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u2, max u2 u3, u4} R R R M (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_9 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (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_10 _inst_11) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.comp.{u1, u1, u1, u3, max u2 u3, u4} R R R M₂ (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 _inst_1 _inst_4 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 _inst_10 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) -> (Eq.{max (max (succ u2) (succ u3)) (succ u4)} (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) _inst_11) f g)
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_ext LinearMap.prod_extₓ'. -/
 /--
 Split equality of linear maps from a product into linear maps over each component, to allow `ext`
 to apply lemmas specific to `M →ₗ M₃` and `M₂ →ₗ M₃`.
@@ -310,26 +528,56 @@ theorem prod_ext {f g : M × M₂ →ₗ[R] M₃} (hl : f.comp (inl _ _ _) = g.c
   prod_ext_iff.2 ⟨hl, hr⟩
 #align linear_map.prod_ext LinearMap.prod_ext
 
+/- warning: linear_map.prod_map -> LinearMap.prodMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_12) -> (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) -> (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_10 _inst_12) -> (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map LinearMap.prodMapₓ'. -/
 /-- `prod.map` of two linear maps. -/
 def prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : M × M₂ →ₗ[R] M₃ × M₄ :=
   (f.comp (fst R M M₂)).Prod (g.comp (snd R M M₂))
 #align linear_map.prod_map LinearMap.prodMap
 
+/- warning: linear_map.coe_prod_map -> LinearMap.coe_prodMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} ((Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (forall (ᾰ : Prod.{u2, u3} M M₂), (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) ᾰ) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g)) (Prod.map.{u2, u4, u3, u5} M M₃ M₂ M₄ (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+Case conversion may be inaccurate. Consider using '#align linear_map.coe_prod_map LinearMap.coe_prodMapₓ'. -/
 theorem coe_prodMap (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : ⇑(f.Prod_map g) = Prod.map f g :=
   rfl
 #align linear_map.coe_prod_map LinearMap.coe_prodMap
 
+/- warning: linear_map.prod_map_apply -> LinearMap.prodMap_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} (Prod.{u4, u5} M₃ M₄) (coeFn.{max (succ (max u2 u3)) (succ (max u4 u5)), max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (fun (_x : LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) => (Prod.{u2, u3} M M₂) -> (Prod.{u4, u5} M₃ M₄)) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} M₃ M₄ (coeFn.{max (succ u2) (succ u4), max (succ u2) (succ u4)} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (fun (_x : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) => M -> M₃) (LinearMap.hasCoeToFun.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (coeFn.{max (succ u3) (succ u5), max (succ u3) (succ u5)} (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_10 _inst_12) (fun (_x : 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_10 _inst_12) => M₂ -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12) (x : Prod.{u2, u3} M M₂), Eq.{max (succ u4) (succ u5)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u3), max (succ u4) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.{u2, u3} M M₂) (fun (_x : Prod.{u2, u3} M M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : Prod.{u2, u3} M M₂) => Prod.{u4, u5} M₃ M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g) x) (Prod.mk.{u4, u5} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) (Prod.fst.{u2, u3} M M₂ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₄) (Prod.snd.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u2) (succ u4), succ u2, succ u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₃) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u3} M M₂ x)) (FunLike.coe.{max (succ u3) (succ u5), succ u3, succ u5} (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_10 _inst_12) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g (Prod.snd.{u2, u3} M M₂ x)))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_apply LinearMap.prodMap_applyₓ'. -/
 @[simp]
 theorem prodMap_apply (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) (x) : f.Prod_map g x = (f x.1, g x.2) :=
   rfl
 #align linear_map.prod_map_apply LinearMap.prodMap_apply
 
+/- warning: linear_map.prod_map_comap_prod -> LinearMap.prodMap_comap_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{succ (max u2 u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max u2 u4) u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (S : Submodule.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10) (S' : Submodule.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (Submodule.comap.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g) (Submodule.prod.{u1, u3, u5} R M₂ _inst_1 _inst_4 _inst_10 S M₄ _inst_6 _inst_12 S')) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f S) M₃ _inst_5 _inst_11 (Submodule.comap.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g S'))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prodₓ'. -/
 theorem prodMap_comap_prod (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) (S : Submodule R M₂)
     (S' : Submodule R M₄) :
     (Submodule.prod S S').comap (LinearMap.prodMap f g) = (S.comap f).Prod (S'.comap g) :=
   SetLike.coe_injective <| Set.preimage_prod_map_prod f g _ _
 #align linear_map.prod_map_comap_prod LinearMap.prodMap_comap_prod
 
+/- warning: linear_map.ker_prod_map -> LinearMap.ker_prodMap is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{succ (max u2 u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max u2 u4) u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.semilinearMapClass.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.semilinearMapClass.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (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_4 _inst_9 _inst_10) (g : LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12), Eq.{max (succ u2) (succ u4)} (Submodule.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u4, max u3 u5, max (max (max u5 u3) u4) u2} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 f g)) (Submodule.prod.{u1, u2, u4} R M _inst_1 _inst_3 _inst_9 (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_9 _inst_10) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₃ _inst_5 _inst_11 (LinearMap.ker.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_map LinearMap.ker_prodMapₓ'. -/
 theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
     (LinearMap.prodMap f g).ker = Submodule.prod f.ker g.ker :=
   by
@@ -337,37 +585,79 @@ theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
   rw [← prod_map_comap_prod, Submodule.prod_bot]
 #align linear_map.ker_prod_map LinearMap.ker_prodMap
 
+/- warning: linear_map.prod_map_id -> LinearMap.prodMap_id 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (LinearMap.id.{u1, u2} R M _inst_1 _inst_3 _inst_9) (LinearMap.id.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) (LinearMap.id.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_id LinearMap.prodMap_idₓ'. -/
 @[simp]
 theorem prodMap_id : (id : M →ₗ[R] M).Prod_map (id : M₂ →ₗ[R] M₂) = id :=
   LinearMap.ext fun _ => Prod.mk.eta
 #align linear_map.prod_map_id LinearMap.prodMap_id
 
+/- warning: linear_map.prod_map_one -> LinearMap.prodMap_one 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{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_9 _inst_9) 1 (OfNat.mk.{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_9 _inst_9) 1 (One.one.{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_9 _inst_9) (LinearMap.module.End.hasOne.{u1, u2} R M _inst_1 _inst_3 _inst_9)))) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) 1 (OfNat.mk.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) 1 (One.one.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.module.End.hasOne.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))))) (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) 1 (OfNat.mk.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) 1 (One.one.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.module.End.hasOne.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (OfNat.ofNat.{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_9 _inst_9) 1 (One.toOfNat1.{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_9 _inst_9) (LinearMap.instOneEnd.{u1, u2} R M _inst_1 _inst_3 _inst_9))) (OfNat.ofNat.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) 1 (One.toOfNat1.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.instOneEnd.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)))) (OfNat.ofNat.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) 1 (One.toOfNat1.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instOneEnd.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_one LinearMap.prodMap_oneₓ'. -/
 @[simp]
 theorem prodMap_one : (1 : M →ₗ[R] M).Prod_map (1 : M₂ →ₗ[R] M₂) = 1 :=
   LinearMap.ext fun _ => Prod.mk.eta
 #align linear_map.prod_map_one LinearMap.prodMap_one
 
+/- warning: linear_map.prod_map_comp -> LinearMap.prodMap_comp is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} {M₅ : Type.{u6}} {M₆ : Type.{u7}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_7 : AddCommMonoid.{u6} M₅] [_inst_8 : AddCommMonoid.{u7} M₆] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_13 : Module.{u1, u6} R M₅ _inst_1 _inst_7] [_inst_14 : Module.{u1, u7} R M₆ _inst_1 _inst_8] (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_4 _inst_9 _inst_10) (f₂₃ : 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_10 _inst_11) (g₁₂ : LinearMap.{u1, u1, u5, u6} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₄ M₅ _inst_6 _inst_7 _inst_12 _inst_13) (g₂₃ : LinearMap.{u1, u1, u6, u7} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₅ M₆ _inst_7 _inst_8 _inst_13 _inst_14), Eq.{max (succ (max u2 u5)) (succ (max u4 u7))} (LinearMap.{u1, u1, max u2 u5, max u4 u7} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u5} M M₄) (Prod.{u4, u7} M₃ M₆) (Prod.addCommMonoid.{u2, u5} M M₄ _inst_3 _inst_6) (Prod.addCommMonoid.{u4, u7} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u1, u2, u5} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u1, u4, u7} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14)) (LinearMap.comp.{u1, u1, u1, max u2 u5, max u3 u6, max u4 u7} R R R (Prod.{u2, u5} M M₄) (Prod.{u3, u6} M₂ M₅) (Prod.{u4, u7} M₃ M₆) _inst_1 _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u5} M M₄ _inst_3 _inst_6) (Prod.addCommMonoid.{u3, u6} M₂ M₅ _inst_4 _inst_7) (Prod.addCommMonoid.{u4, u7} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u1, u2, u5} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u1, u3, u6} R M₂ M₅ _inst_1 _inst_4 _inst_7 _inst_10 _inst_13) (Prod.module.{u1, u4, u7} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14) (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prodMap.{u1, u3, u6, u4, u7} R M₂ M₅ M₃ M₆ _inst_1 _inst_4 _inst_7 _inst_5 _inst_8 _inst_10 _inst_13 _inst_11 _inst_14 f₂₃ g₂₃) (LinearMap.prodMap.{u1, u2, u5, u3, u6} R M M₄ M₂ M₅ _inst_1 _inst_3 _inst_6 _inst_4 _inst_7 _inst_9 _inst_12 _inst_10 _inst_13 f₁₂ g₁₂)) (LinearMap.prodMap.{u1, u2, u5, u4, u7} R M M₄ M₃ M₆ _inst_1 _inst_3 _inst_6 _inst_5 _inst_8 _inst_9 _inst_12 _inst_11 _inst_14 (LinearMap.comp.{u1, u1, u1, u2, u3, u4} R R R M M₂ M₃ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f₂₃ f₁₂) (LinearMap.comp.{u1, u1, u1, u5, u6, u7} R R R M₄ M₅ M₆ _inst_1 _inst_1 _inst_1 _inst_6 _inst_7 _inst_8 _inst_12 _inst_13 _inst_14 (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.ids.{u1, u1} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g₂₃ g₁₂))
+but is expected to have type
+  forall {R : Type.{u3}} {M : Type.{u4}} {M₂ : Type.{u5}} {M₃ : Type.{u6}} {M₄ : Type.{u7}} {M₅ : Type.{u2}} {M₆ : Type.{u1}} [_inst_1 : Semiring.{u3} R] [_inst_3 : AddCommMonoid.{u4} M] [_inst_4 : AddCommMonoid.{u5} M₂] [_inst_5 : AddCommMonoid.{u6} M₃] [_inst_6 : AddCommMonoid.{u7} M₄] [_inst_7 : AddCommMonoid.{u2} M₅] [_inst_8 : AddCommMonoid.{u1} M₆] [_inst_9 : Module.{u3, u4} R M _inst_1 _inst_3] [_inst_10 : Module.{u3, u5} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u3, u6} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u3, u7} R M₄ _inst_1 _inst_6] [_inst_13 : Module.{u3, u2} R M₅ _inst_1 _inst_7] [_inst_14 : Module.{u3, u1} R M₆ _inst_1 _inst_8] (f₁₂ : LinearMap.{u3, u3, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₂ _inst_3 _inst_4 _inst_9 _inst_10) (f₂₃ : LinearMap.{u3, u3, u5, u6} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ _inst_4 _inst_5 _inst_10 _inst_11) (g₁₂ : LinearMap.{u3, u3, u7, u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₄ M₅ _inst_6 _inst_7 _inst_12 _inst_13) (g₂₃ : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₅ M₆ _inst_7 _inst_8 _inst_13 _inst_14), Eq.{max (max (max (succ u4) (succ u6)) (succ u7)) (succ u1)} (LinearMap.{u3, u3, max u4 u7, max u6 u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u7} M M₄) (Prod.{u6, u1} M₃ M₆) (Prod.instAddCommMonoidSum.{u4, u7} M M₄ _inst_3 _inst_6) (Prod.instAddCommMonoidSum.{u6, u1} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u3, u4, u7} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u3, u6, u1} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14)) (LinearMap.comp.{u3, u3, u3, max u4 u7, max u5 u2, max u6 u1} R R R (Prod.{u4, u7} M M₄) (Prod.{u5, u2} M₂ M₅) (Prod.{u6, u1} M₃ M₆) _inst_1 _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u7} M M₄ _inst_3 _inst_6) (Prod.instAddCommMonoidSum.{u5, u2} M₂ M₅ _inst_4 _inst_7) (Prod.instAddCommMonoidSum.{u6, u1} M₃ M₆ _inst_5 _inst_8) (Prod.module.{u3, u4, u7} R M M₄ _inst_1 _inst_3 _inst_6 _inst_9 _inst_12) (Prod.module.{u3, u5, u2} R M₂ M₅ _inst_1 _inst_4 _inst_7 _inst_10 _inst_13) (Prod.module.{u3, u6, u1} R M₃ M₆ _inst_1 _inst_5 _inst_8 _inst_11 _inst_14) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomCompTriple.ids.{u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.prodMap.{u3, u5, u2, u6, u1} R M₂ M₅ M₃ M₆ _inst_1 _inst_4 _inst_7 _inst_5 _inst_8 _inst_10 _inst_13 _inst_11 _inst_14 f₂₃ g₂₃) (LinearMap.prodMap.{u3, u4, u7, u5, u2} R M M₄ M₂ M₅ _inst_1 _inst_3 _inst_6 _inst_4 _inst_7 _inst_9 _inst_12 _inst_10 _inst_13 f₁₂ g₁₂)) (LinearMap.prodMap.{u3, u4, u7, u6, u1} R M M₄ M₃ M₆ _inst_1 _inst_3 _inst_6 _inst_5 _inst_8 _inst_9 _inst_12 _inst_11 _inst_14 (LinearMap.comp.{u3, u3, u3, u4, u5, u6} R R R M M₂ M₃ _inst_1 _inst_1 _inst_1 _inst_3 _inst_4 _inst_5 _inst_9 _inst_10 _inst_11 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomCompTriple.ids.{u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f₂₃ f₁₂) (LinearMap.comp.{u3, u3, u3, u7, u2, u1} R R R M₄ M₅ M₆ _inst_1 _inst_1 _inst_1 _inst_6 _inst_7 _inst_8 _inst_12 _inst_13 _inst_14 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (RingHomCompTriple.ids.{u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g₂₃ g₁₂))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_comp LinearMap.prodMap_compₓ'. -/
 theorem prodMap_comp (f₁₂ : M →ₗ[R] M₂) (f₂₃ : M₂ →ₗ[R] M₃) (g₁₂ : M₄ →ₗ[R] M₅)
     (g₂₃ : M₅ →ₗ[R] M₆) :
     f₂₃.Prod_map g₂₃ ∘ₗ f₁₂.Prod_map g₁₂ = (f₂₃ ∘ₗ f₁₂).Prod_map (g₂₃ ∘ₗ g₁₂) :=
   rfl
 #align linear_map.prod_map_comp LinearMap.prodMap_comp
 
+/- warning: linear_map.prod_map_mul -> LinearMap.prodMap_mul 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (f₁₂ : 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_9 _inst_9) (f₂₃ : 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_9 _inst_9) (g₁₂ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (g₂₃ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10), Eq.{succ (max u2 u3)} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (instHMul.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.module.End.hasMul.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₂₃ g₂₃) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₁₂ g₁₂)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (HMul.hMul.{u2, u2, 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_9 _inst_9) (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_9 _inst_9) (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_9 _inst_9) (instHMul.{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_9 _inst_9) (LinearMap.module.End.hasMul.{u1, u2} R M _inst_1 _inst_3 _inst_9)) f₂₃ f₁₂) (HMul.hMul.{u3, u3, u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (instHMul.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.module.End.hasMul.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) g₂₃ g₁₂))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] (f₁₂ : 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_9 _inst_9) (f₂₃ : 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_9 _inst_9) (g₁₂ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (g₂₃ : LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10), Eq.{max (succ u2) (succ u3)} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (instHMul.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (LinearMap.instMulEnd.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10))) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₂₃ g₂₃) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 f₁₂ g₁₂)) (LinearMap.prodMap.{u1, u2, u3, u2, u3} R M M₂ M M₂ _inst_1 _inst_3 _inst_4 _inst_3 _inst_4 _inst_9 _inst_10 _inst_9 _inst_10 (HMul.hMul.{u2, u2, 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_9 _inst_9) (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_9 _inst_9) (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_9 _inst_9) (instHMul.{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_9 _inst_9) (LinearMap.instMulEnd.{u1, u2} R M _inst_1 _inst_3 _inst_9)) f₂₃ f₁₂) (HMul.hMul.{u3, u3, u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (instHMul.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (LinearMap.instMulEnd.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10)) g₂₃ g₁₂))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_mul LinearMap.prodMap_mulₓ'. -/
 theorem prodMap_mul (f₁₂ : M →ₗ[R] M) (f₂₃ : M →ₗ[R] M) (g₁₂ : M₂ →ₗ[R] M₂) (g₂₃ : M₂ →ₗ[R] M₂) :
     f₂₃.Prod_map g₂₃ * f₁₂.Prod_map g₁₂ = (f₂₃ * f₁₂).Prod_map (g₂₃ * g₁₂) :=
   rfl
 #align linear_map.prod_map_mul LinearMap.prodMap_mul
 
+/- warning: linear_map.prod_map_add -> LinearMap.prodMap_add is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (f₂ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₁ : 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_10 _inst_12) (g₂ : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HAdd.hAdd.{max u2 u4, max u2 u4, max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHAdd.{max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.hasAdd.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) f₁ f₂) (HAdd.hAdd.{max u3 u5, max u3 u5, max u3 u5} (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_10 _inst_12) (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_10 _inst_12) (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_10 _inst_12) (instHAdd.{max u3 u5} (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_10 _inst_12) (LinearMap.hasAdd.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) g₁ g₂)) (HAdd.hAdd.{max (max u2 u3) u4 u5, max (max u2 u3) u4 u5, max (max u2 u3) u4 u5} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHAdd.{max (max u2 u3) u4 u5} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.hasAdd.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₁ g₁) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₂ g₂))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] (f₁ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (f₂ : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g₁ : 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_10 _inst_12) (g₂ : 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_10 _inst_12), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HAdd.hAdd.{max u2 u4, max u2 u4, max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHAdd.{max u2 u4} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instAddLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) f₁ f₂) (HAdd.hAdd.{max u3 u5, max u3 u5, max u3 u5} (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_10 _inst_12) (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_10 _inst_12) (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_10 _inst_12) (instHAdd.{max u3 u5} (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_10 _inst_12) (LinearMap.instAddLinearMap.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) g₁ g₂)) (HAdd.hAdd.{max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHAdd.{max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.instAddLinearMap.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₁ g₁) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f₂ g₂))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_add LinearMap.prodMap_addₓ'. -/
 theorem prodMap_add (f₁ : M →ₗ[R] M₃) (f₂ : M →ₗ[R] M₃) (g₁ : M₂ →ₗ[R] M₄) (g₂ : M₂ →ₗ[R] M₄) :
     (f₁ + f₂).Prod_map (g₁ + g₂) = f₁.Prod_map g₁ + f₂.Prod_map g₂ :=
   rfl
 #align linear_map.prod_map_add LinearMap.prodMap_add
 
+/- warning: linear_map.prod_map_zero -> LinearMap.prodMap_zero is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], Eq.{max (succ (max u2 u4)) (succ (max u3 u5))} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (OfNat.mk.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.zero.{max u2 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_4 _inst_9 _inst_10) (LinearMap.hasZero.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) 0 (OfNat.mk.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) 0 (Zero.zero.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.hasZero.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))) (OfNat.ofNat.{max (max u2 u4) u3 u5} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) 0 (OfNat.mk.{max (max u2 u4) u3 u5} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) 0 (Zero.zero.{max (max u2 u4) u3 u5} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.hasZero.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6], Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_3 _inst_5 _inst_4 _inst_6 _inst_9 _inst_11 _inst_10 _inst_12 (OfNat.ofNat.{max u2 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_4 _inst_9 _inst_10) 0 (Zero.toOfNat0.{max u2 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_4 _inst_9 _inst_10) (LinearMap.instZeroLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_3 _inst_4 _inst_9 _inst_10 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))))) (OfNat.ofNat.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) 0 (Zero.toOfNat0.{max u4 u5} (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_5 _inst_6 _inst_11 _inst_12) (LinearMap.instZeroLinearMap.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_5 _inst_6 _inst_11 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))) (OfNat.ofNat.{max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) 0 (Zero.toOfNat0.{max (max (max u2 u3) u4) u5} (LinearMap.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12)) (LinearMap.instZeroLinearMap.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_4 _inst_6) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_3 _inst_5 _inst_9 _inst_11) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_4 _inst_6 _inst_10 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_zero LinearMap.prodMap_zeroₓ'. -/
 @[simp]
 theorem prodMap_zero : (0 : M →ₗ[R] M₂).Prod_map (0 : M₃ →ₗ[R] M₄) = 0 :=
   rfl
 #align linear_map.prod_map_zero LinearMap.prodMap_zero
 
+/- warning: linear_map.prod_map_smul -> LinearMap.prodMap_smul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, 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_11)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, 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_12)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : 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_10 _inst_12), Eq.{max (succ (max u2 u3)) (succ (max u4 u5))} (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (SMul.smul.{u6, max u2 u4} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.hasSmul.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15) _inst_17) s f) (SMul.smul.{u6, 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_10 _inst_12) (LinearMap.hasSmul.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16) _inst_18) s g)) (SMul.smul.{u6, max (max u2 u3) u4 u5} S (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.hasSmul.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (Prod.distribMulAction.{u6, u4, u5} S M₃ M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.sMulCommClass.{u1, u6, u4, u5} R S M₃ 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_11)))) (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_12)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16)))) _inst_17 _inst_18)) s (LinearMap.prodMap.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
+but is expected to have type
+  forall {R : Type.{u2}} {M : Type.{u3}} {M₂ : Type.{u4}} {M₃ : Type.{u5}} {M₄ : Type.{u6}} (S : Type.{u1}) [_inst_1 : Semiring.{u2} R] [_inst_2 : Semiring.{u1} S] [_inst_3 : AddCommMonoid.{u3} M] [_inst_4 : AddCommMonoid.{u4} M₂] [_inst_5 : AddCommMonoid.{u5} M₃] [_inst_6 : AddCommMonoid.{u6} M₄] [_inst_9 : Module.{u2, u3} R M _inst_1 _inst_3] [_inst_10 : Module.{u2, u4} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u2, u5} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u2, u6} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u1, u5} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u1, u6} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u2, u1, u5} R S M₃ (SMulZeroClass.toSMul.{u2, u5} R M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u2, u5} R M₃ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u2, u5} R M₃ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u1, u5} S M₃ (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u1, u5} S M₃ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u1, u5} S M₃ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u5} M₃ (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u2, u1, u6} R S M₄ (SMulZeroClass.toSMul.{u2, u6} R M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u6} R M₄ (MonoidWithZero.toZero.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u6} R M₄ (Semiring.toMonoidWithZero.{u2} R _inst_1) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12)))) (SMulZeroClass.toSMul.{u1, u6} S M₄ (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u6} S M₄ (MonoidWithZero.toZero.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u6} S M₄ (Semiring.toMonoidWithZero.{u1} S _inst_2) (AddMonoid.toZero.{u6} M₄ (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6)) (Module.toMulActionWithZero.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))))] (s : S) (f : LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (g : LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12), Eq.{max (max (max (succ u3) (succ u4)) (succ u5)) (succ u6)} (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 (HSMul.hSMul.{u1, max u3 u5, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (instHSMul.{u1, max u3 u5} S (LinearMap.{u2, u2, u3, u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (LinearMap.instSMulLinearMap.{u2, u2, u1, u3, u5} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) _inst_17)) s f) (HSMul.hSMul.{u1, max u4 u6, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (instHSMul.{u1, max u4 u6} S (LinearMap.{u2, u2, u4, u6} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) M₂ M₄ _inst_4 _inst_6 _inst_10 _inst_12) (LinearMap.instSMulLinearMap.{u2, u2, u1, u4, u6} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16) _inst_18)) s g)) (HSMul.hSMul.{u1, max (max (max u6 u5) u4) u3, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (instHSMul.{u1, max (max (max u3 u4) u5) u6} S (LinearMap.{u2, u2, max u4 u3, max u6 u5} R R _inst_1 _inst_1 (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (LinearMap.instSMulLinearMap.{u2, u2, u1, max u3 u4, max u5 u6} R R S (Prod.{u3, u4} M M₂) (Prod.{u5, u6} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u5, u6} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u2, u3, u4} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u2, u5, u6} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u2} R (Semiring.toNonAssocSemiring.{u2} R _inst_1)) (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (Prod.distribMulAction.{u1, u5, u6} S M₃ M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16)) (Prod.smulCommClass.{u2, u1, u5, u6} R S M₃ M₄ (MulAction.toSMul.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u5} R M₃ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u2, u5} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (DistribMulAction.toMulAction.{u2, u6} R M₄ (MonoidWithZero.toMonoid.{u2} R (Semiring.toMonoidWithZero.{u2} R _inst_1)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u2, u6} R M₄ _inst_1 _inst_6 _inst_12))) (MulAction.toSMul.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u5} S M₃ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₃ _inst_5) (Module.toDistribMulAction.{u1, u5} S M₃ _inst_2 _inst_5 _inst_15))) (MulAction.toSMul.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (DistribMulAction.toMulAction.{u1, u6} S M₄ (MonoidWithZero.toMonoid.{u1} S (Semiring.toMonoidWithZero.{u1} S _inst_2)) (AddCommMonoid.toAddMonoid.{u6} M₄ _inst_6) (Module.toDistribMulAction.{u1, u6} S M₄ _inst_2 _inst_6 _inst_16))) _inst_17 _inst_18))) s (LinearMap.prodMap.{u2, u3, u4, u5, u6} R M M₂ M₃ M₄ _inst_1 _inst_3 _inst_4 _inst_5 _inst_6 _inst_9 _inst_10 _inst_11 _inst_12 f g))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_smul LinearMap.prodMap_smulₓ'. -/
 @[simp]
 theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄]
     (s : S) (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄) : prodMap (s • f) (s • g) = s • prodMap f g :=
@@ -376,6 +666,12 @@ theorem prodMap_smul [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [S
 
 variable (R M M₂ M₃ M₄)
 
+/- warning: linear_map.prod_map_linear -> LinearMap.prodMapLinear is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) (M₃ : Type.{u4}) (M₄ : Type.{u5}) (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, 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_11)))) (SMulZeroClass.toHasSmul.{u6, u4} S M₃ (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (SMulWithZero.toSmulZeroClass.{u6, u4} S M₃ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u4} M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5))) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, 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_12)))) (SMulZeroClass.toHasSmul.{u6, u5} S M₄ (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (SMulWithZero.toSmulZeroClass.{u6, u5} S M₄ (MulZeroClass.toHasZero.{u6} S (MulZeroOneClass.toMulZeroClass.{u6} S (MonoidWithZero.toMulZeroOneClass.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)))) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddZeroClass.toHasZero.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6))) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))], LinearMap.{u6, u6, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} S S _inst_2 _inst_2 (RingHom.id.{u6} S (Semiring.toNonAssocSemiring.{u6} S _inst_2)) (Prod.{max u2 u4, max u3 u5} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12)) (LinearMap.{u1, u1, max u2 u3, max u4 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.addCommMonoid.{max u2 u4, max u3 u5} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u6, max u2 u4, max u3 u5} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.module.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.module.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.module.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u6, u4, u5} S M₃ M₄ _inst_2 _inst_5 _inst_6 _inst_15 _inst_16) (LinearMap.prodMapLinear._proof_1.{u1, u6, u4, u5} R M₃ M₄ S _inst_1 _inst_2 _inst_5 _inst_6 _inst_11 _inst_12 _inst_15 _inst_16 _inst_17 _inst_18))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) (M₃ : Type.{u4}) (M₄ : Type.{u5}) (S : Type.{u6}) [_inst_1 : Semiring.{u1} R] [_inst_2 : Semiring.{u6} S] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_5 : AddCommMonoid.{u4} M₃] [_inst_6 : AddCommMonoid.{u5} M₄] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4] [_inst_11 : Module.{u1, u4} R M₃ _inst_1 _inst_5] [_inst_12 : Module.{u1, u5} R M₄ _inst_1 _inst_6] [_inst_15 : Module.{u6, u4} S M₃ _inst_2 _inst_5] [_inst_16 : Module.{u6, u5} S M₄ _inst_2 _inst_6] [_inst_17 : SMulCommClass.{u1, u6, u4} R S M₃ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (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_5)) (MulActionWithZero.toSMulWithZero.{u1, u4} R M₃ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11)))) (SMulZeroClass.toSMul.{u6, u4} S M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (SMulWithZero.toSMulZeroClass.{u6, u4} S M₃ (MonoidWithZero.toZero.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (MulActionWithZero.toSMulWithZero.{u6, u4} S M₃ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5)) (Module.toMulActionWithZero.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))))] [_inst_18 : SMulCommClass.{u1, u6, u5} R S M₄ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u1, u5} R M₄ (MonoidWithZero.toZero.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u1, u5} R M₄ (Semiring.toMonoidWithZero.{u1} R _inst_1) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (Module.toMulActionWithZero.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12)))) (SMulZeroClass.toSMul.{u6, u5} S M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (SMulWithZero.toSMulZeroClass.{u6, u5} S M₄ (MonoidWithZero.toZero.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (MulActionWithZero.toSMulWithZero.{u6, u5} S M₄ (Semiring.toMonoidWithZero.{u6} S _inst_2) (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6)) (Module.toMulActionWithZero.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))))], LinearMap.{u6, u6, max (max u5 u3) u4 u2, max (max u5 u4) u3 u2} S S _inst_2 _inst_2 (RingHom.id.{u6} S (Semiring.toNonAssocSemiring.{u6} S _inst_2)) (Prod.{max u4 u2, max u5 u3} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12)) (LinearMap.{u1, u1, max u3 u2, max u5 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12)) (Prod.instAddCommMonoidSum.{max u2 u4, max u3 u5} (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)))) (LinearMap.addCommMonoid.{u1, u1, max u2 u3, max u4 u5} R R (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (Prod.module.{u6, max u2 u4, max u3 u5} S (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_3 _inst_5 _inst_9 _inst_11) (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_10 _inst_12) _inst_2 (LinearMap.addCommMonoid.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.addCommMonoid.{u1, u1, u3, u5} R R M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u6, u2, u4} R R S M M₃ _inst_1 _inst_1 _inst_3 _inst_5 _inst_9 _inst_11 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_15 _inst_17) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u6, u3, u5} R R S M₂ M₄ _inst_1 _inst_1 _inst_4 _inst_6 _inst_10 _inst_12 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 _inst_16 _inst_18)) (LinearMap.instModuleLinearMapAddCommMonoid.{u1, u1, u6, max u2 u3, max u4 u5} R R S (Prod.{u2, u3} M M₂) (Prod.{u4, u5} M₃ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u4, u5} M₃ M₄ _inst_5 _inst_6) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u4, u5} R M₃ M₄ _inst_1 _inst_5 _inst_6 _inst_11 _inst_12) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) _inst_2 (Prod.module.{u6, u4, u5} S M₃ M₄ _inst_2 _inst_5 _inst_6 _inst_15 _inst_16) (Prod.smulCommClass.{u1, u6, u4, u5} R S M₃ M₄ (MulAction.toSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_5 _inst_11))) (MulAction.toSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (DistribMulAction.toMulAction.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_6 _inst_12))) (MulAction.toSMul.{u6, u4} S M₃ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (DistribMulAction.toMulAction.{u6, u4} S M₃ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_5) (Module.toDistribMulAction.{u6, u4} S M₃ _inst_2 _inst_5 _inst_15))) (MulAction.toSMul.{u6, u5} S M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (DistribMulAction.toMulAction.{u6, u5} S M₄ (MonoidWithZero.toMonoid.{u6} S (Semiring.toMonoidWithZero.{u6} S _inst_2)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_6) (Module.toDistribMulAction.{u6, u5} S M₄ _inst_2 _inst_6 _inst_16))) _inst_17 _inst_18))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_linear LinearMap.prodMapLinearₓ'. -/
 /-- `linear_map.prod_map` as a `linear_map` -/
 @[simps]
 def prodMapLinear [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMulCommClass R S M₄] :
@@ -386,6 +682,12 @@ def prodMapLinear [Module S M₃] [Module S M₄] [SMulCommClass R S M₃] [SMul
   map_smul' _ _ := rfl
 #align linear_map.prod_map_linear LinearMap.prodMapLinear
 
+/- warning: linear_map.prod_map_ring_hom -> LinearMap.prodMapRingHom 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_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], RingHom.{max u2 u3, max u2 u3} (Prod.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10)) (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.nonAssocSemiring.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Semiring.toNonAssocSemiring.{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_9 _inst_9) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_3 _inst_9)) (Semiring.toNonAssocSemiring.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Module.End.semiring.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))) (Semiring.toNonAssocSemiring.{max u2 u3} (LinearMap.{u1, u1, max u2 u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_3 : AddCommMonoid.{u2} M] [_inst_4 : AddCommMonoid.{u3} M₂] [_inst_9 : Module.{u1, u2} R M _inst_1 _inst_3] [_inst_10 : Module.{u1, u3} R M₂ _inst_1 _inst_4], RingHom.{max u3 u2, max u3 u2} (Prod.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10)) (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Prod.instNonAssocSemiringProd.{u2, u3} (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_9 _inst_9) (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Semiring.toNonAssocSemiring.{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_9 _inst_9) (Module.End.semiring.{u1, u2} R M _inst_1 _inst_3 _inst_9)) (Semiring.toNonAssocSemiring.{u3} (LinearMap.{u1, u1, u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₂ _inst_4 _inst_4 _inst_10 _inst_10) (Module.End.semiring.{u1, u3} R M₂ _inst_1 _inst_4 _inst_10))) (Semiring.toNonAssocSemiring.{max u2 u3} (LinearMap.{u1, u1, max u3 u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) (Prod.{u2, u3} M M₂) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_3 _inst_4) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_3 _inst_4 _inst_9 _inst_10)))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_ring_hom LinearMap.prodMapRingHomₓ'. -/
 /-- `linear_map.prod_map` as a `ring_hom` -/
 @[simps]
 def prodMapRingHom : (M →ₗ[R] M) × (M₂ →ₗ[R] M₂) →+* M × M₂ →ₗ[R] M × M₂
@@ -405,11 +707,23 @@ variable {A : Type _} [NonUnitalNonAssocSemiring A] [Module R A]
 
 variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
 
+/- warning: linear_map.inl_map_mul -> LinearMap.inl_map_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15))) a₁ a₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₁) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) A (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => A -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R A (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_16 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) a₂))
+but is expected to have type
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (a₁ : A) (a₂ : A), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u2, u2, u2} A A A (instHMul.{u2} A (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15)) a₁ a₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) a₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₁) (FunLike.coe.{max (succ u2) (succ u1), succ u2, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u2, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) A (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) A (fun (_x : A) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : A) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u2, max u2 u1} R R A (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_16 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inl.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) a₂))
+Case conversion may be inaccurate. Consider using '#align linear_map.inl_map_mul LinearMap.inl_map_mulₓ'. -/
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
   Prod.ext rfl (by simp)
 #align linear_map.inl_map_mul LinearMap.inl_map_mul
 
+/- warning: linear_map.inr_map_mul -> LinearMap.inr_map_mul is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} [_inst_1 : Semiring.{u1} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u1, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u3}} [_inst_17 : NonUnitalNonAssocSemiring.{u3} B] [_inst_18 : Module.{u1, u3} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u3)} (Prod.{u2, u3} A B) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u3, u3, u3} B B B (instHMul.{u3} B (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17))) b₁ b₂)) (HMul.hMul.{max u2 u3, max u2 u3, max u2 u3} (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (Prod.{u2, u3} A B) (instHMul.{max u2 u3} (Prod.{u2, u3} A B) (Prod.hasMul.{u2, u3} A B (Distrib.toHasMul.{u2} A (NonUnitalNonAssocSemiring.toDistrib.{u2} A _inst_15)) (Distrib.toHasMul.{u3} B (NonUnitalNonAssocSemiring.toDistrib.{u3} B _inst_17)))) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₁) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) B (Prod.{u2, u3} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18)) => B -> (Prod.{u2, u3} A B)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R B (Prod.{u2, u3} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) (Prod.addCommMonoid.{u2, u3} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17)) _inst_18 (Prod.module.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u3} B _inst_17) _inst_16 _inst_18) b₂))
+but is expected to have type
+  forall {R : Type.{u3}} [_inst_1 : Semiring.{u3} R] {A : Type.{u2}} [_inst_15 : NonUnitalNonAssocSemiring.{u2} A] [_inst_16 : Module.{u3, u2} R A _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15)] {B : Type.{u1}} [_inst_17 : NonUnitalNonAssocSemiring.{u1} B] [_inst_18 : Module.{u3, u1} R B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)] (b₁ : B) (b₂ : B), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (HMul.hMul.{u1, u1, u1} B B B (instHMul.{u1} B (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17)) b₁ b₂)) (HMul.hMul.{max u2 u1, max u2 u1, max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₁) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₂) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₁) (instHMul.{max u2 u1} ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) b₁) (Prod.instMulProd.{u2, u1} A B (NonUnitalNonAssocSemiring.toMul.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toMul.{u1} B _inst_17))) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₁) (FunLike.coe.{max (succ u2) (succ u1), succ u1, max (succ u2) (succ u1)} (LinearMap.{u3, u3, u1, max u1 u2} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) B (Prod.{u2, u1} A B) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18)) B (fun (_x : B) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : B) => Prod.{u2, u1} A B) _x) (LinearMap.instFunLikeLinearMap.{u3, u3, u1, max u2 u1} R R B (Prod.{u2, u1} A B) _inst_1 _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) (Prod.instAddCommMonoidSum.{u2, u1} A B (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17)) _inst_18 (Prod.module.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.inr.{u3, u2, u1} R A B _inst_1 (NonUnitalNonAssocSemiring.toAddCommMonoid.{u2} A _inst_15) (NonUnitalNonAssocSemiring.toAddCommMonoid.{u1} B _inst_17) _inst_16 _inst_18) b₂))
+Case conversion may be inaccurate. Consider using '#align linear_map.inr_map_mul LinearMap.inr_map_mulₓ'. -/
 theorem inr_map_mul (b₁ b₂ : B) :
     LinearMap.inr R A B (b₁ * b₂) = LinearMap.inr R A B b₁ * LinearMap.inr R A B b₂ :=
   Prod.ext (by simp) rfl
@@ -431,6 +745,12 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
+/- warning: linear_map.prod_map_alg_hom -> LinearMap.prodMapAlgHom is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3], AlgHom.{u1, max u2 u3, max u2 u3} R (Prod.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) _inst_1 (Prod.semiring.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.algebra.{u1, u2, u3} R (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) _inst_1 (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.algebra.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.End.algebra.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (Module.End.algebra.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5))
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (M₂ : Type.{u3}) [_inst_1 : CommSemiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : Module.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2] [_inst_5 : Module.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3], AlgHom.{u1, max u3 u2, max u3 u2} R (Prod.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) _inst_1 (Prod.instSemiringProd.{u2, u3} (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5)) (Module.End.semiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) (CommSemiring.toSemiring.{u1} R _inst_1) (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.algebra.{u1, u2, u3} R (Module.End.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.End.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) _inst_1 (Module.End.semiring.{u1, u2} R M (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_4) (Module.instAlgebraEndToSemiringSemiring.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Module.End.semiring.{u1, u3} R M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_3 _inst_5) (Module.instAlgebraEndToSemiringSemiring.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)) (Module.instAlgebraEndToSemiringSemiring.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ (CommSemiring.toSemiring.{u1} R _inst_1) _inst_2 _inst_3 _inst_4 _inst_5))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_map_alg_hom LinearMap.prodMapAlgHomₓ'. -/
 /-- `linear_map.prod_map` as an `algebra_hom` -/
 @[simps]
 def prodMapAlgHom : Module.End R M × Module.End R M₂ →ₐ[R] Module.End R (M × M₂) :=
@@ -446,10 +766,22 @@ open Submodule
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
 
+/- warning: linear_map.range_coprod -> LinearMap.range_coprod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (LinearMap.range.{u1, u1, max u2 u3, u4, max (max u2 u4) u3} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+Case conversion may be inaccurate. Consider using '#align linear_map.range_coprod LinearMap.range_coprodₓ'. -/
 theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : (f.coprod g).range = f.range ⊔ g.range :=
   Submodule.ext fun x => by simp [mem_sup]
 #align linear_map.range_coprod LinearMap.range_coprod
 
+/- warning: linear_map.is_compl_range_inl_inr -> LinearMap.isCompl_range_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], IsCompl.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (CompleteLattice.toBoundedOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+Case conversion may be inaccurate. Consider using '#align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inrₓ'. -/
 theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).range :=
   by
   constructor
@@ -464,15 +796,33 @@ theorem isCompl_range_inl_inr : IsCompl (inl R M M₂).range (inr R M M₂).rang
     simp
 #align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inr
 
+/- warning: linear_map.sup_range_inl_inr -> LinearMap.sup_range_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))
+Case conversion may be inaccurate. Consider using '#align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inrₓ'. -/
 theorem sup_range_inl_inr : (inl R M M₂).range ⊔ (inr R M M₂).range = ⊤ :=
   IsCompl.sup_eq_top isCompl_range_inl_inr
 #align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inr
 
+/- warning: linear_map.disjoint_inl_inr -> LinearMap.disjoint_inl_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))) (Submodule.orderBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3], Disjoint.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.range.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7))
+Case conversion may be inaccurate. Consider using '#align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inrₓ'. -/
 theorem disjoint_inl_inr : Disjoint (inl R M M₂).range (inr R M M₂).range := by
   simp (config := { contextual := true }) [disjoint_def, @eq_comm M 0, @eq_comm M₂ 0] <;> intros <;>
     rfl
 #align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inr
 
+/- warning: linear_map.map_coprod_prod -> LinearMap.map_coprod_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (g : 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_4 _inst_7 _inst_8) (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.map.{u1, u1, max u2 u3, u4, max (max u4 u3) u2} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q)) (HasSup.sup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (SemilatticeSup.toHasSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Lattice.toSemilatticeSup.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (ConditionallyCompleteLattice.toLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (CompleteLattice.toConditionallyCompleteLattice.{u4} (Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8) (Submodule.completeLattice.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8))))) (Submodule.map.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.map.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (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_4 _inst_7 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 _inst_3 _inst_4 _inst_7 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+Case conversion may be inaccurate. Consider using '#align linear_map.map_coprod_prod LinearMap.map_coprod_prodₓ'. -/
 theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Submodule R M)
     (q : Submodule R M₂) : map (coprod f g) (p.Prod q) = map f p ⊔ map g q :=
   by
@@ -484,31 +834,67 @@ theorem map_coprod_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (p : Su
   · exact fun x hx => ⟨(0, x), by simp [hx]⟩
 #align linear_map.map_coprod_prod LinearMap.map_coprod_prod
 
+/- warning: linear_map.comap_prod_prod -> LinearMap.comap_prod_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (p : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7) (q : Submodule.{u1, u4} R M₃ _inst_1 _inst_4 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 p M₃ _inst_4 _inst_8 q)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instHasInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.comap.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f p) (Submodule.comap.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g q))
+Case conversion may be inaccurate. Consider using '#align linear_map.comap_prod_prod LinearMap.comap_prod_prodₓ'. -/
 theorem comap_prod_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) (p : Submodule R M₂)
     (q : Submodule R M₃) : comap (prod f g) (p.Prod q) = comap f p ⊓ comap g q :=
   Submodule.ext fun x => Iff.rfl
 #align linear_map.comap_prod_prod LinearMap.comap_prod_prod
 
+/- warning: linear_map.prod_eq_inf_comap -> LinearMap.prod_eq_inf_comap 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.instHasInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_6 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comapₓ'. -/
 theorem prod_eq_inf_comap (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.comap (LinearMap.fst R M M₂) ⊓ q.comap (LinearMap.snd R M M₂) :=
   Submodule.ext fun x => Iff.rfl
 #align linear_map.prod_eq_inf_comap LinearMap.prod_eq_inf_comap
 
+/- warning: linear_map.prod_eq_sup_map -> LinearMap.prod_eq_sup_map 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 p M₂ _inst_3 _inst_7 q) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) p) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) q))
+Case conversion may be inaccurate. Consider using '#align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_mapₓ'. -/
 theorem prod_eq_sup_map (p : Submodule R M) (q : Submodule R M₂) :
     p.Prod q = p.map (LinearMap.inl R M M₂) ⊔ q.map (LinearMap.inr R M M₂) := by
   rw [← map_coprod_prod, coprod_inl_inr, map_id]
 #align linear_map.prod_eq_sup_map LinearMap.prod_eq_sup_map
 
+/- warning: linear_map.span_inl_union_inr -> LinearMap.span_inl_union_inr 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.hasUnion.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (coeFn.{max (succ u2) (succ (max u2 u3)), max (succ u2) (succ (max u2 u3))} (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) => M₂ -> (Prod.{u2, u3} M M₂)) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
+but is expected to have type
+  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_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] {s : Set.{u2} M} {t : Set.{u3} M₂}, Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) (Submodule.span.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (Union.union.{max u2 u3} (Set.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.instUnionSet.{max u2 u3} (Prod.{u2, u3} M M₂)) (Set.image.{u2, max u2 u3} M (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u2, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_6 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) s) (Set.image.{u3, max u2 u3} M₂ (Prod.{u2, u3} M M₂) (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M₂) => Prod.{u2, u3} M M₂) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_7 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_6 _inst_7)) t))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (Submodule.span.{u1, u2} R M _inst_1 _inst_2 _inst_6 s) M₂ _inst_3 _inst_7 (Submodule.span.{u1, u3} R M₂ _inst_1 _inst_3 _inst_7 t))
+Case conversion may be inaccurate. Consider using '#align linear_map.span_inl_union_inr LinearMap.span_inl_union_inrₓ'. -/
 theorem span_inl_union_inr {s : Set M} {t : Set M₂} :
     span R (inl R M M₂ '' s ∪ inr R M M₂ '' t) = (span R s).Prod (span R t) := by
   rw [span_union, prod_eq_sup_map, ← span_image, ← span_image]
 #align linear_map.span_inl_union_inr LinearMap.span_inl_union_inr
 
+/- warning: linear_map.ker_prod -> LinearMap.ker_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.hasInf.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (HasInf.inf.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (Submodule.instHasInfSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_6) (LinearMap.ker.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g))
+Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod LinearMap.ker_prodₓ'. -/
 @[simp]
 theorem ker_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ker (prod f g) = ker f ⊓ ker g := by
   rw [ker, ← prod_bot, comap_prod_prod] <;> rfl
 #align linear_map.ker_prod LinearMap.ker_prod
 
+/- warning: linear_map.range_prod_le -> LinearMap.range_prod_le is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (SetLike.partialOrder.{max u3 u4, max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Prod.{u3, u4} M₂ M₃) (Submodule.setLike.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max u2 u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.semilinearMapClass.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_6 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_7 : Module.{u1, u3} R M₂ _inst_1 _inst_3] [_inst_8 : Module.{u1, u4} R M₃ _inst_1 _inst_4] (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_2 _inst_3 _inst_6 _inst_7) (g : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8), LE.le.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Preorder.toLE.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (PartialOrder.toPreorder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (OmegaCompletePartialOrder.toPartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (CompleteLattice.instOmegaCompletePartialOrder.{max u3 u4} (Submodule.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (Submodule.completeLattice.{u1, max u3 u4} R (Prod.{u3, u4} M₂ M₃) _inst_1 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)))))) (LinearMap.range.{u1, u1, u2, max u3 u4, max (max u4 u3) u2} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u4 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u3, u4} M₂ M₃) _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u3 u4} R R M (Prod.{u3, u4} M₂ M₃) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u3, u4} M₂ M₃ _inst_3 _inst_4) _inst_6 (Prod.module.{u1, u3, u4} R M₂ M₃ _inst_1 _inst_3 _inst_4 _inst_7 _inst_8) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.prod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 _inst_3 _inst_4 _inst_6 _inst_7 _inst_8 f g)) (Submodule.prod.{u1, u3, u4} R M₂ _inst_1 _inst_3 _inst_7 (LinearMap.range.{u1, u1, u2, u3, max u2 u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (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_6 _inst_7) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 _inst_6 _inst_7 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) M₃ _inst_4 _inst_8 (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 _inst_4 _inst_6 _inst_8) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 _inst_4 _inst_6 _inst_8 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g))
+Case conversion may be inaccurate. Consider using '#align linear_map.range_prod_le LinearMap.range_prod_leₓ'. -/
 theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
     range (prod f g) ≤ (range f).Prod (range g) :=
   by
@@ -517,6 +903,12 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
   exact ⟨⟨x, rfl⟩, ⟨x, rfl⟩⟩
 #align linear_map.range_prod_le LinearMap.range_prod_le
 
+/- warning: linear_map.ker_prod_ker_le_ker_coprod -> LinearMap.ker_prod_ker_le_ker_coprod 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
+but is expected to have type
+  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), LE.le.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Preorder.toLE.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (PartialOrder.toPreorder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (OmegaCompletePartialOrder.toPartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (CompleteLattice.instOmegaCompletePartialOrder.{max u4 u2} (Submodule.{u3, max u2 u4} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (Submodule.completeLattice.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)))))) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g))
+Case conversion may be inaccurate. Consider using '#align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprodₓ'. -/
 theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
     (ker f).Prod (ker g) ≤ ker (f.coprod g) :=
@@ -525,6 +917,12 @@ theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R
   simp (config := { contextual := true })
 #align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprod
 
+/- warning: linear_map.ker_coprod_of_disjoint_range -> LinearMap.ker_coprod_of_disjoint_range 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_6 : Module.{u1, u2} R M _inst_1 _inst_2] {M₂ : Type.{u3}} [_inst_10 : AddCommGroup.{u3} M₂] [_inst_11 : Module.{u1, u3} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)] {M₃ : Type.{u4}} [_inst_12 : AddCommGroup.{u4} M₃] [_inst_13 : Module.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12)] (f : LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (SetLike.partialOrder.{u4, u4} (Submodule.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) M₃ (Submodule.setLike.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13)) (Submodule.orderBot.{u1, u4} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_13) (LinearMap.range.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) f) (LinearMap.range.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) g)) -> (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u1, u1, max u2 u3, u4, max (max u2 u3) u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₃ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u4} R R (Prod.{u2, u3} M M₂) M₃ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.coprod.{u1, u2, u3, u4} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u1, u1, u2, u4, max u2 u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u2, u4} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) _inst_11 (LinearMap.ker.{u1, u1, u3, u4, max u3 u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.semilinearMapClass.{u1, u1, u3, u4} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u3} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u4} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) g)))
+but is expected to have type
+  forall {R : Type.{u3}} {M : Type.{u4}} [_inst_1 : Semiring.{u3} R] [_inst_2 : AddCommMonoid.{u4} M] [_inst_6 : Module.{u3, u4} R M _inst_1 _inst_2] {M₂ : Type.{u2}} [_inst_10 : AddCommGroup.{u2} M₂] [_inst_11 : Module.{u3, u2} R M₂ _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)] {M₃ : Type.{u1}} [_inst_12 : AddCommGroup.{u1} M₃] [_inst_13 : Module.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12)] (f : LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (g : LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13), (Disjoint.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (OmegaCompletePartialOrder.toPartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (CompleteLattice.instOmegaCompletePartialOrder.{u1} (Submodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (Submodule.completeLattice.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13))) (Submodule.instOrderBotSubmoduleToLEToPreorderInstPartialOrderInstSetLikeSubmodule.{u3, u1} R M₃ _inst_1 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_13) (LinearMap.range.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) f) (LinearMap.range.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (RingHomSurjective.ids.{u3} R _inst_1) g)) -> (Eq.{max (succ u4) (succ u2)} (Submodule.{u3, max u4 u2} R (Prod.{u4, u2} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11)) (LinearMap.ker.{u3, u3, max u4 u2, u1, max (max u4 u1) u2} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, max u2 u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (Prod.{u4, u2} M M₂) M₃ (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, max u4 u2, u1} R R (Prod.{u4, u2} M M₂) M₃ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u4, u2} M M₂ _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10)) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) (Prod.module.{u3, u4, u2} R M M₂ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_6 _inst_11) _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) (LinearMap.coprod.{u3, u4, u2, u1} R M M₂ M₃ _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_11 _inst_13 f g)) (Submodule.prod.{u3, u4, u2} R M _inst_1 _inst_2 _inst_6 (LinearMap.ker.{u3, u3, u4, u1, max u4 u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u4, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M M₃ _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u4, u1} R R M M₃ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_6 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) f) M₂ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) _inst_11 (LinearMap.ker.{u3, u3, u2, u1, max u2 u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) (LinearMap.{u3, u3, u2, u1} R R _inst_1 _inst_1 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1)) M₂ M₃ (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13) (LinearMap.instSemilinearMapClassLinearMap.{u3, u3, u2, u1} R R M₂ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u2} M₂ _inst_10) (AddCommGroup.toAddCommMonoid.{u1} M₃ _inst_12) _inst_11 _inst_13 (RingHom.id.{u3} R (Semiring.toNonAssocSemiring.{u3} R _inst_1))) g)))
+Case conversion may be inaccurate. Consider using '#align linear_map.ker_coprod_of_disjoint_range LinearMap.ker_coprod_of_disjoint_rangeₓ'. -/
 theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
     (hd : Disjoint f.range g.range) : ker (f.coprod g) = (ker f).Prod (ker g) :=
@@ -554,12 +952,24 @@ variable [AddCommMonoid M] [AddCommMonoid M₂]
 
 variable [Module R M] [Module R M₂]
 
+/- warning: submodule.sup_eq_range -> Submodule.sup_eq_range 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasSup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, u2, u2} R R (Prod.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q)) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u2} (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) p) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)) q) M _inst_1 (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.addCommMonoid.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.module.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (HasSup.sup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SemilatticeSup.toHasSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Lattice.toSemilatticeSup.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (ConditionallyCompleteLattice.toLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.toConditionallyCompleteLattice.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) p q) (LinearMap.range.{u1, u1, u2, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, u2} R R (Prod.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q))) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u2} (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_2 (Prod.module.{u1, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.coprod.{u1, u2, u2, u2} R (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x p)) (Subtype.{succ u2} M (fun (x : M) => Membership.mem.{u2, u2} M (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.instSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) x q)) M _inst_1 (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_2 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4 q) _inst_4 (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 p) (Submodule.subtype.{u1, u2} R M _inst_1 _inst_2 _inst_4 q)))
+Case conversion may be inaccurate. Consider using '#align submodule.sup_eq_range Submodule.sup_eq_rangeₓ'. -/
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = (p.Subtype.coprod q.Subtype).range :=
   Submodule.ext fun x => by simp [Submodule.mem_sup, SetLike.exists]
 #align submodule.sup_eq_range Submodule.sup_eq_range
 
 variable (p : Submodule R M) (q : Submodule R M₂)
 
+/- warning: submodule.map_inl -> Submodule.map_inl 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
+but is expected to have type
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
+Case conversion may be inaccurate. Consider using '#align submodule.map_inl Submodule.map_inlₓ'. -/
 @[simp]
 theorem map_inl : p.map (inl R M M₂) = prod p ⊥ :=
   by
@@ -568,59 +978,137 @@ theorem map_inl : p.map (inl R M M₂) = prod p ⊥ :=
     mem_prod]
 #align submodule.map_inl Submodule.map_inl
 
+/- warning: submodule.map_inr -> Submodule.map_inr 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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
+but is expected to have type
+  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
+Case conversion may be inaccurate. Consider using '#align submodule.map_inr Submodule.map_inrₓ'. -/
 @[simp]
 theorem map_inr : q.map (inr R M M₂) = prod ⊥ q := by ext ⟨x, y⟩ <;> simp [and_left_comm, eq_comm]
 #align submodule.map_inr Submodule.map_inr
 
+/- warning: submodule.comap_fst -> Submodule.comap_fst 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
+but is expected to have type
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))
+Case conversion may be inaccurate. Consider using '#align submodule.comap_fst Submodule.comap_fstₓ'. -/
 @[simp]
 theorem comap_fst : p.comap (fst R M M₂) = prod p ⊤ := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_fst Submodule.comap_fst
 
+/- warning: submodule.comap_snd -> Submodule.comap_snd 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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
+but is expected to have type
+  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] (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.comap.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4)) M₂ _inst_3 _inst_5 q)
+Case conversion may be inaccurate. Consider using '#align submodule.comap_snd Submodule.comap_sndₓ'. -/
 @[simp]
 theorem comap_snd : q.comap (snd R M M₂) = prod ⊤ q := by ext ⟨x, y⟩ <;> simp
 #align submodule.comap_snd Submodule.comap_snd
 
+/- warning: submodule.prod_comap_inl -> Submodule.prod_comap_inl 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.comap.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
+but is expected to have type
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.comap.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
+Case conversion may be inaccurate. Consider using '#align submodule.prod_comap_inl Submodule.prod_comap_inlₓ'. -/
 @[simp]
 theorem prod_comap_inl : (prod p q).comap (inl R M M₂) = p := by ext <;> simp
 #align submodule.prod_comap_inl Submodule.prod_comap_inl
 
+/- warning: submodule.prod_comap_inr -> Submodule.prod_comap_inr 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.comap.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
+but is expected to have type
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.comap.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
+Case conversion may be inaccurate. Consider using '#align submodule.prod_comap_inr Submodule.prod_comap_inrₓ'. -/
 @[simp]
 theorem prod_comap_inr : (prod p q).comap (inr R M M₂) = q := by ext <;> simp
 #align submodule.prod_comap_inr Submodule.prod_comap_inr
 
+/- warning: submodule.prod_map_fst -> Submodule.prod_map_fst 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
+but is expected to have type
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) p
+Case conversion may be inaccurate. Consider using '#align submodule.prod_map_fst Submodule.prod_map_fstₓ'. -/
 @[simp]
 theorem prod_map_fst : (prod p q).map (fst R M M₂) = p := by
   ext x <;> simp [(⟨0, zero_mem _⟩ : ∃ x, x ∈ q)]
 #align submodule.prod_map_fst Submodule.prod_map_fst
 
+/- warning: submodule.prod_map_snd -> Submodule.prod_map_snd 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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
+but is expected to have type
+  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] (p : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (q : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5), Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p M₂ _inst_3 _inst_5 q)) q
+Case conversion may be inaccurate. Consider using '#align submodule.prod_map_snd Submodule.prod_map_sndₓ'. -/
 @[simp]
 theorem prod_map_snd : (prod p q).map (snd R M M₂) = q := by
   ext x <;> simp [(⟨0, zero_mem _⟩ : ∃ x, x ∈ p)]
 #align submodule.prod_map_snd Submodule.prod_map_snd
 
+/- warning: submodule.ker_inl -> Submodule.ker_inl 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+but is expected to have type
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.ker.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+Case conversion may be inaccurate. Consider using '#align submodule.ker_inl Submodule.ker_inlₓ'. -/
 @[simp]
 theorem ker_inl : (inl R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inl]
 #align submodule.ker_inl Submodule.ker_inl
 
+/- warning: submodule.ker_inr -> Submodule.ker_inr 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+but is expected to have type
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.ker.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+Case conversion may be inaccurate. Consider using '#align submodule.ker_inr Submodule.ker_inrₓ'. -/
 @[simp]
 theorem ker_inr : (inr R M M₂).ker = ⊥ := by rw [ker, ← prod_bot, prod_comap_inr]
 #align submodule.ker_inr Submodule.ker_inr
 
+/- warning: submodule.range_fst -> Submodule.range_fst 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+but is expected to have type
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (LinearMap.range.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+Case conversion may be inaccurate. Consider using '#align submodule.range_fst Submodule.range_fstₓ'. -/
 @[simp]
 theorem range_fst : (fst R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_fst]
 #align submodule.range_fst Submodule.range_fst
 
+/- warning: submodule.range_snd -> Submodule.range_snd 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+but is expected to have type
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (LinearMap.range.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+Case conversion may be inaccurate. Consider using '#align submodule.range_snd Submodule.range_sndₓ'. -/
 @[simp]
 theorem range_snd : (snd R M M₂).range = ⊤ := by rw [range_eq_map, ← prod_top, prod_map_snd]
 #align submodule.range_snd Submodule.range_snd
 
 variable (R M M₂)
 
+/- warning: submodule.fst -> Submodule.fst 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], Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
+but is expected to have type
+  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], Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
+Case conversion may be inaccurate. Consider using '#align submodule.fst Submodule.fstₓ'. -/
 /-- `M` as a submodule of `M × N`. -/
 def fst : Submodule R (M × M₂) :=
   (⊥ : Submodule R M₂).comap (LinearMap.snd R M M₂)
 #align submodule.fst Submodule.fst
 
+/- warning: submodule.fst_equiv -> Submodule.fstEquiv 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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) M (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
+but is expected to have type
+  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], LinearEquiv.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_2 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_4
+Case conversion may be inaccurate. Consider using '#align submodule.fst_equiv Submodule.fstEquivₓ'. -/
 /-- `M` as a submodule of `M × N` is isomorphic to `M`. -/
 @[simps]
 def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M
@@ -633,20 +1121,44 @@ def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M
   right_inv := by tidy
 #align submodule.fst_equiv Submodule.fstEquiv
 
+/- warning: submodule.fst_map_fst -> Submodule.fst_map_fst 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+but is expected to have type
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+Case conversion may be inaccurate. Consider using '#align submodule.fst_map_fst Submodule.fst_map_fstₓ'. -/
 theorem fst_map_fst : (Submodule.fst R M M₂).map (LinearMap.fst R M M₂) = ⊤ := by tidy
 #align submodule.fst_map_fst Submodule.fst_map_fst
 
+/- warning: submodule.fst_map_snd -> Submodule.fst_map_snd 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+but is expected to have type
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+Case conversion may be inaccurate. Consider using '#align submodule.fst_map_snd Submodule.fst_map_sndₓ'. -/
 theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ :=
   by
   tidy
   exact 0
 #align submodule.fst_map_snd Submodule.fst_map_snd
 
+/- warning: submodule.snd -> Submodule.snd 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], Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
+but is expected to have type
+  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], Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)
+Case conversion may be inaccurate. Consider using '#align submodule.snd Submodule.sndₓ'. -/
 /-- `N` as a submodule of `M × N`. -/
 def snd : Submodule R (M × M₂) :=
   (⊥ : Submodule R M).comap (LinearMap.fst R M M₂)
 #align submodule.snd Submodule.snd
 
+/- warning: submodule.snd_equiv -> Submodule.sndEquiv 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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (coeSort.{succ (max u2 u3), succ (succ (max u2 u3))} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) Type.{max u2 u3} (SetLike.hasCoeToSort.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) M₂ (Submodule.addCommMonoid.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.module.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
+but is expected to have type
+  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], LinearEquiv.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Subtype.{succ (max u2 u3)} (Prod.{u2, u3} M M₂) (fun (x : Prod.{u2, u3} M M₂) => Membership.mem.{max u2 u3, max u2 u3} (Prod.{u2, u3} M M₂) (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.instMembership.{max u2 u3, max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.instSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) x (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))) M₂ (Submodule.instAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_3 (Submodule.instModuleSubtypeMemSubmoduleInstMembershipInstSetLikeSubmoduleInstAddCommMonoidSubtypeMemSubmoduleInstMembershipInstSetLikeSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) _inst_5
+Case conversion may be inaccurate. Consider using '#align submodule.snd_equiv Submodule.sndEquivₓ'. -/
 /-- `N` as a submodule of `M × N` is isomorphic to `N`. -/
 @[simps]
 def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂
@@ -659,15 +1171,33 @@ def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂
   right_inv := by tidy
 #align submodule.snd_equiv Submodule.sndEquiv
 
+/- warning: submodule.snd_map_fst -> Submodule.snd_map_fst 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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+but is expected to have type
+  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], Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))
+Case conversion may be inaccurate. Consider using '#align submodule.snd_map_fst Submodule.snd_map_fstₓ'. -/
 theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ :=
   by
   tidy
   exact 0
 #align submodule.snd_map_fst Submodule.snd_map_fst
 
+/- warning: submodule.snd_map_snd -> Submodule.snd_map_snd 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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+but is expected to have type
+  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], Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))
+Case conversion may be inaccurate. Consider using '#align submodule.snd_map_snd Submodule.snd_map_sndₓ'. -/
 theorem snd_map_snd : (Submodule.snd R M M₂).map (LinearMap.snd R M M₂) = ⊤ := by tidy
 #align submodule.snd_map_snd Submodule.snd_map_snd
 
+/- warning: submodule.fst_sup_snd -> Submodule.fst_sup_snd 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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+but is expected to have type
+  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasSup.sup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SemilatticeSup.toHasSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Lattice.toSemilatticeSup.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (ConditionallyCompleteLattice.toLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.toConditionallyCompleteLattice.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Top.top.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+Case conversion may be inaccurate. Consider using '#align submodule.fst_sup_snd Submodule.fst_sup_sndₓ'. -/
 theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   by
   rw [eq_top_iff]
@@ -678,9 +1208,21 @@ theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
   · exact Submodule.mem_sup_right (submodule.mem_comap.mpr (by simp))
 #align submodule.fst_sup_snd Submodule.fst_sup_snd
 
+/- warning: submodule.fst_inf_snd -> Submodule.fst_inf_snd 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], Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasInf.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+but is expected to have type
+  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], Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (HasInf.inf.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instHasInfSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Submodule.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Bot.bot.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instBotSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))
+Case conversion may be inaccurate. Consider using '#align submodule.fst_inf_snd Submodule.fst_inf_sndₓ'. -/
 theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ := by tidy
 #align submodule.fst_inf_snd Submodule.fst_inf_snd
 
+/- warning: submodule.le_prod_iff -> Submodule.le_prod_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (SetLike.partialOrder.{u2, u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) M (Submodule.setLike.{u1, u2} R M _inst_1 _inst_2 _inst_4)))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (SetLike.partialOrder.{u3, u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) M₂ (Submodule.setLike.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5)))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u2 u3, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.semilinearMapClass.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
+but is expected to have type
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) q (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂)) (And (LE.le.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Preorder.toLE.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (PartialOrder.toPreorder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (OmegaCompletePartialOrder.toPartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (CompleteLattice.instOmegaCompletePartialOrder.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.completeLattice.{u1, u2} R M _inst_1 _inst_2 _inst_4))))) (Submodule.map.{u1, u1, max u2 u3, u2, max u2 u3} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M M₂) M _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_2 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_4 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.fst.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₁) (LE.le.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Preorder.toLE.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (PartialOrder.toPreorder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (OmegaCompletePartialOrder.toPartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (CompleteLattice.instOmegaCompletePartialOrder.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.completeLattice.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))) (Submodule.map.{u1, u1, max u2 u3, u3, max u2 u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, max u3 u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u3} M M₂) M₂ (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, max u2 u3, u3} R R (Prod.{u2, u3} M M₂) M₂ _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_3 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) _inst_5 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.snd.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) q) p₂))
+Case conversion may be inaccurate. Consider using '#align submodule.le_prod_iff Submodule.le_prod_iffₓ'. -/
 theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     q ≤ p₁.Prod p₂ ↔ map (LinearMap.fst R M M₂) q ≤ p₁ ∧ map (LinearMap.snd R M M₂) q ≤ p₂ :=
   by
@@ -695,6 +1237,12 @@ theorem le_prod_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
     exact ⟨hH ⟨_, h, rfl⟩, hK ⟨_, h, rfl⟩⟩
 #align submodule.le_prod_iff Submodule.le_prod_iff
 
+/- warning: submodule.prod_le_iff -> Submodule.prod_le_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (SetLike.partialOrder.{max u2 u3, max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Prod.{u2, u3} M M₂) (Submodule.setLike.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.semilinearMapClass.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
+but is expected to have type
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5} {q : Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)}, Iff (LE.le.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) q) (And (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u2, max u2 u3, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u2, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M (Prod.{u2, u3} M M₂) _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u2, max u2 u3} R R M (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_2 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_4 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inl.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₁) q) (LE.le.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Preorder.toLE.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (PartialOrder.toPreorder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (OmegaCompletePartialOrder.toPartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (CompleteLattice.instOmegaCompletePartialOrder.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.completeLattice.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))))) (Submodule.map.{u1, u1, u3, max u2 u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomSurjective.ids.{u1} R _inst_1) (LinearMap.{u1, u1, u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₂ (Prod.{u2, u3} M M₂) _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (LinearMap.instSemilinearMapClassLinearMap.{u1, u1, u3, max u2 u3} R R M₂ (Prod.{u2, u3} M M₂) _inst_1 _inst_1 _inst_3 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) _inst_5 (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) (LinearMap.inr.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) p₂) q))
+Case conversion may be inaccurate. Consider using '#align submodule.prod_le_iff Submodule.prod_le_iffₓ'. -/
 theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submodule R (M × M₂)} :
     p₁.Prod p₂ ≤ q ↔ map (LinearMap.inl R M M₂) p₁ ≤ q ∧ map (LinearMap.inr R M M₂) p₂ ≤ q :=
   by
@@ -717,11 +1265,23 @@ theorem prod_le_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} {q : Submod
     simpa using add_mem h1' h2'
 #align submodule.prod_le_iff Submodule.prod_le_iff
 
+/- warning: submodule.prod_eq_bot_iff -> Submodule.prod_eq_bot_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Bot.bot.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasBot.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasBot.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasBot.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
+but is expected to have type
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Bot.bot.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instBotSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Bot.bot.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instBotSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Bot.bot.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instBotSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
+Case conversion may be inaccurate. Consider using '#align submodule.prod_eq_bot_iff Submodule.prod_eq_bot_iffₓ'. -/
 theorem prod_eq_bot_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} :
     p₁.Prod p₂ = ⊥ ↔ p₁ = ⊥ ∧ p₂ = ⊥ := by
   simp only [eq_bot_iff, prod_le_iff, (gc_map_comap _).le_iff_le, comap_bot, ker_inl, ker_inr]
 #align submodule.prod_eq_bot_iff Submodule.prod_eq_bot_iff
 
+/- warning: submodule.prod_eq_top_iff -> Submodule.prod_eq_top_iff 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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{succ (max u2 u3)} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Top.top.{max u2 u3} (Submodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.hasTop.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.addCommMonoid.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.hasTop.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.hasTop.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
+but is expected to have type
+  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] {p₁ : Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4} {p₂ : Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5}, Iff (Eq.{max (succ u2) (succ u3)} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.prod.{u1, u2, u3} R M _inst_1 _inst_2 _inst_4 p₁ M₂ _inst_3 _inst_5 p₂) (Top.top.{max u2 u3} (Submodule.{u1, max u3 u2} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)) (Submodule.instTopSubmodule.{u1, max u2 u3} R (Prod.{u2, u3} M M₂) _inst_1 (Prod.instAddCommMonoidSum.{u2, u3} M M₂ _inst_2 _inst_3) (Prod.module.{u1, u2, u3} R M M₂ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5)))) (And (Eq.{succ u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) p₁ (Top.top.{u2} (Submodule.{u1, u2} R M _inst_1 _inst_2 _inst_4) (Submodule.instTopSubmodule.{u1, u2} R M _inst_1 _inst_2 _inst_4))) (Eq.{succ u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) p₂ (Top.top.{u3} (Submodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5) (Submodule.instTopSubmodule.{u1, u3} R M₂ _inst_1 _inst_3 _inst_5))))
+Case conversion may be inaccurate. Consider using '#align submodule.prod_eq_top_iff Submodule.prod_eq_top_iffₓ'. -/
 theorem prod_eq_top_iff {p₁ : Submodule R M} {p₂ : Submodule R M₂} :
     p₁.Prod p₂ = ⊤ ↔ p₁ = ⊤ ∧ p₂ = ⊤ := by
   simp only [eq_top_iff, le_prod_iff, ← (gc_map_comap _).le_iff_le, map_top, range_fst, range_snd]
@@ -731,6 +1291,12 @@ end Submodule
 
 namespace LinearEquiv
 
+/- warning: linear_equiv.prod_comm -> LinearEquiv.prodComm is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) (M : Type.{u2}) (N : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} N] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R N _inst_1 _inst_3], LinearEquiv.{u1, u1, max u2 u3, max u3 u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u3} M N) (Prod.{u3, u2} N M) (Prod.addCommMonoid.{u2, u3} M N _inst_2 _inst_3) (Prod.addCommMonoid.{u3, u2} N M _inst_3 _inst_2) (Prod.module.{u1, u2, u3} R M N _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Prod.module.{u1, u3, u2} R N M _inst_1 _inst_3 _inst_2 _inst_5 _inst_4)
+but is expected to have type
+  forall (R : Type.{u1}) (M : Type.{u2}) (N : Type.{u3}) [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} N] [_inst_4 : Module.{u1, u2} R M _inst_1 _inst_2] [_inst_5 : Module.{u1, u3} R N _inst_1 _inst_3], LinearEquiv.{u1, u1, max u3 u2, max u2 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u3} M N) (Prod.{u3, u2} N M) (Prod.instAddCommMonoidSum.{u2, u3} M N _inst_2 _inst_3) (Prod.instAddCommMonoidSum.{u3, u2} N M _inst_3 _inst_2) (Prod.module.{u1, u2, u3} R M N _inst_1 _inst_2 _inst_3 _inst_4 _inst_5) (Prod.module.{u1, u3, u2} R N M _inst_1 _inst_3 _inst_2 _inst_5 _inst_4)
+Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_comm LinearEquiv.prodCommₓ'. -/
 /-- Product of modules is commutative up to linear isomorphism. -/
 @[simps apply]
 def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M]
@@ -752,21 +1318,45 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
+/- warning: linear_equiv.prod -> LinearEquiv.prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) -> (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) -> (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.prod LinearEquiv.prodₓ'. -/
 /-- Product of linear equivalences; the maps come from `equiv.prod_congr`. -/
 protected def prod : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
   { e₁.toAddEquiv.prodCongr e₂.toAddEquiv with
     map_smul' := fun c x => Prod.ext (e₁.map_smulₛₗ c _) (e₂.map_smulₛₗ c _) }
 #align linear_equiv.prod LinearEquiv.prod
 
+/- warning: linear_equiv.prod_symm -> LinearEquiv.prod_symm is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearEquiv.prod.{u1, u3, u2, u5, u4} R M₂ M M₄ M₃ _inst_1 _inst_3 _inst_2 _inst_5 _inst_4 module_M₂ module_M module_M₄ module_M₃ (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearEquiv.prod.{u1, u3, u2, u5, u4} R M₂ M M₄ M₃ _inst_1 _inst_3 _inst_2 _inst_5 _inst_4 module_M₂ module_M module_M₄ module_M₃ (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_symm LinearEquiv.prod_symmₓ'. -/
 theorem prod_symm : (e₁.Prod e₂).symm = e₁.symm.Prod e₂.symm :=
   rfl
 #align linear_equiv.prod_symm LinearEquiv.prod_symm
 
+/- warning: linear_equiv.prod_apply -> LinearEquiv.prod_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ p)) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ p)))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (p : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) p) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂) p) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ p)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ p)) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5)) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ _inst_5) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 _inst_5 module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ p)))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.prod_apply LinearEquiv.prod_applyₓ'. -/
 @[simp]
 theorem prod_apply (p) : e₁.Prod e₂ p = (e₁ p.1, e₂ p.2) :=
   rfl
 #align linear_equiv.prod_apply LinearEquiv.prod_apply
 
+/- warning: linear_equiv.coe_prod -> LinearEquiv.coe_prod is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (succ (max u2 u4)) (succ (max u3 u5))} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) ((fun (a : Sort.{max (succ (max u2 u4)) (succ (max u3 u5))}) (b : Sort.{max (succ (max u2 u4)) (succ (max u3 u5))}) [self : HasLiftT.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} a b] => self.0) (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (HasLiftT.mk.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (CoeTCₓ.coe.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (coeBase.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearEquiv.LinearMap.hasCoe.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1))))) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_2 _inst_4 _inst_3 _inst_5 module_M module_M₃ module_M₂ module_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) (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (HasLiftT.mk.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (CoeTCₓ.coe.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (coeBase.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (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 module_M module_M₂) (LinearEquiv.LinearMap.hasCoe.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1))))) e₁) ((fun (a : Sort.{max (succ u4) (succ u5)}) (b : Sort.{max (succ u4) (succ u5)}) [self : HasLiftT.{max (succ u4) (succ u5), max (succ u4) (succ u5)} a b] => self.0) (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (HasLiftT.mk.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (CoeTCₓ.coe.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (coeBase.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄) (LinearEquiv.LinearMap.hasCoe.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 _inst_5 module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1))))) e₂))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommMonoid.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 _inst_5} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄)) (LinearEquiv.toLinearMap.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 _inst_5) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 _inst_5 module_M₂ module_M₄) (LinearEquiv.prod.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂)) (LinearMap.prodMap.{u1, u2, u4, u3, u5} R M M₃ M₂ M₄ _inst_1 _inst_2 _inst_4 _inst_3 _inst_5 module_M module_M₃ module_M₂ module_M₄ (LinearEquiv.toLinearMap.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂ e₁) (LinearEquiv.toLinearMap.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 _inst_5 module_M₃ module_M₄ e₂))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.coe_prod LinearEquiv.coe_prodₓ'. -/
 @[simp, norm_cast]
 theorem coe_prod :
     (e₁.Prod e₂ : M × M₃ →ₗ[R] M₂ × M₄) = (e₁ : M →ₗ[R] M₂).Prod_map (e₂ : M₃ →ₗ[R] M₄) :=
@@ -787,6 +1377,12 @@ variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
 
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
+/- warning: linear_equiv.skew_prod -> LinearEquiv.skewProd is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) -> (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) -> (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)}, (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) -> (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) -> (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) -> (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod LinearEquiv.skewProdₓ'. -/
 /-- Equivalence given by a block lower diagonal matrix. `e₁` and `e₂` are diagonal square blocks,
   and `f` is a rectangular block below the diagonal. -/
 protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M₄ :=
@@ -801,11 +1397,23 @@ protected def skewProd (f : M →ₗ[R] M₄) : (M × M₃) ≃ₗ[R] M₂ × M
     right_inv := fun p => by simp }
 #align linear_equiv.skew_prod LinearEquiv.skewProd
 
+/- warning: linear_equiv.skew_prod_apply -> LinearEquiv.skewProd_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} (Prod.{u3, u5} M₂ M₄) (coeFn.{max (succ (max u2 u4)) (succ (max u3 u5)), max (succ (max u2 u4)) (succ (max u3 u5))} (LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (fun (_x : LinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) => (Prod.{u2, u4} M M₃) -> (Prod.{u3, u5} M₂ M₄)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} M₂ M₄ (coeFn.{max (succ u2) (succ u3), max (succ u2) (succ u3)} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (fun (_x : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) => M -> M₂) (LinearEquiv.hasCoeToFun.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} M₄ M₄ M₄ (instHAdd.{u5} M₄ (AddZeroClass.toHasAdd.{u5} M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (SubNegMonoid.toAddMonoid.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))))) (coeFn.{max (succ u4) (succ u5), max (succ u4) (succ u5)} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (fun (_x : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) => M₃ -> M₄) (LinearEquiv.hasCoeToFun.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) e₂ (Prod.snd.{u2, u4} M M₃ x)) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u2, u4} M M₃), Eq.{max (succ u3) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u2) (succ u4), max (succ u3) (succ u5)} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Prod.{u2, u4} M M₃) (fun (_x : Prod.{u2, u4} M M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u2, u4} M M₃) => Prod.{u3, u5} M₂ M₄) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u2 u4, max u3 u5} (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u2 u4, max u3 u5, max (max (max u2 u3) u4) u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (LinearEquiv.{u1, u1, max u4 u2, max u5 u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f) x) (Prod.mk.{u3, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u3), succ u2, succ u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M) => M₂) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u2, u3} (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) R M M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (SemilinearMapClass.distribMulActionHomClass.{u1, u2, u3, max u2 u3} R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_2 _inst_3 module_M module_M₂ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u2, u3, max u2 u3} R R M M₂ (LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₁ (Prod.fst.{u2, u4} M M₃ x)) (HAdd.hAdd.{u5, u5, u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) (Prod.fst.{u2, u4} M M₃ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (instHAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddZeroClass.toAdd.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddMonoid.toAddZeroClass.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (SubNegMonoid.toAddMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddGroup.toSubNegMonoid.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) (AddCommGroup.toAddGroup.{u5} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) (Prod.snd.{u2, u4} M M₃ x)) _inst_5)))))) (FunLike.coe.{max (succ u4) (succ u5), succ u4, succ u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) M₃ (fun (_x : M₃) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₃) => M₄) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u4, u5} (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) R M₃ M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (SemilinearMapClass.distribMulActionHomClass.{u1, u4, u5, max u4 u5} R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u4, u5, max u4 u5} R R M₃ M₄ (LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) e₂ (Prod.snd.{u2, u4} M M₃ x)) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (Prod.fst.{u2, u4} M M₃ x))))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_apply LinearEquiv.skewProd_applyₓ'. -/
 @[simp]
 theorem skewProd_apply (f : M →ₗ[R] M₄) (x) : e₁.skewProd e₂ f x = (e₁ x.1, e₂ x.2 + f x.1) :=
   rfl
 #align linear_equiv.skew_prod_apply LinearEquiv.skewProd_apply
 
+/- warning: linear_equiv.skew_prod_symm_apply -> LinearEquiv.skewProd_symm_apply is a dubious translation:
+lean 3 declaration is
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} (Prod.{u2, u4} M M₃) (coeFn.{max (succ (max u3 u5)) (succ (max u2 u4)), max (succ (max u3 u5)) (succ (max u2 u4))} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (fun (_x : LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) => (Prod.{u3, u5} M₂ M₄) -> (Prod.{u2, u4} M M₃)) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.addCommMonoid.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.addCommMonoid.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} M M₃ (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (coeFn.{max (succ u5) (succ u4), max (succ u5) (succ u4)} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) (fun (_x : LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) => M₄ -> M₃) (LinearEquiv.hasCoeToFun.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ M₄ M₄ (instHSub.{u5} M₄ (SubNegMonoid.toHasSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (coeFn.{max (succ u2) (succ u5), max (succ u2) (succ u5)} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (fun (_x : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) => M -> M₄) (LinearMap.hasCoeToFun.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (coeFn.{max (succ u3) (succ u2), max (succ u3) (succ u2)} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) (fun (_x : LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) => M₂ -> M) (LinearEquiv.hasCoeToFun.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
+but is expected to have type
+  forall {R : Type.{u1}} {M : Type.{u2}} {M₂ : Type.{u3}} {M₃ : Type.{u4}} {M₄ : Type.{u5}} [_inst_1 : Semiring.{u1} R] [_inst_2 : AddCommMonoid.{u2} M] [_inst_3 : AddCommMonoid.{u3} M₂] [_inst_4 : AddCommMonoid.{u4} M₃] [_inst_5 : AddCommGroup.{u5} M₄] {module_M : Module.{u1, u2} R M _inst_1 _inst_2} {module_M₂ : Module.{u1, u3} R M₂ _inst_1 _inst_3} {module_M₃ : Module.{u1, u4} R M₃ _inst_1 _inst_4} {module_M₄ : Module.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)} (e₁ : LinearEquiv.{u1, u1, u2, u3} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M M₂ _inst_2 _inst_3 module_M module_M₂) (e₂ : LinearEquiv.{u1, u1, u4, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₃ M₄ _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄) (f : LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) (x : Prod.{u3, u5} M₂ M₄), Eq.{max (succ u2) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) x) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u3) (succ u5), max (succ u2) (succ u4)} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (Prod.{u3, u5} M₂ M₄) (fun (_x : Prod.{u3, u5} M₂ M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : Prod.{u3, u5} M₂ M₄) => Prod.{u2, u4} M M₃) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (SMulZeroClass.toSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toZero.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribSMul.toSMulZeroClass.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (AddMonoid.toAddZeroClass.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)))) (DistribMulAction.toDistribSMul.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄))))) (SMulZeroClass.toSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toZero.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribSMul.toSMulZeroClass.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (AddMonoid.toAddZeroClass.{max u2 u4} (Prod.{u2, u4} M M₃) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4))) (DistribMulAction.toDistribSMul.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max u3 u5, max u2 u4} (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{max u3 u5} (Prod.{u3, u5} M₂ M₄) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (AddCommMonoid.toAddMonoid.{max u2 u4} (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4)) (Module.toDistribMulAction.{u1, max u3 u5} R (Prod.{u3, u5} M₂ M₄) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄)) (Module.toDistribMulAction.{u1, max u2 u4} R (Prod.{u2, u4} M M₃) _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) (SemilinearMapClass.distribMulActionHomClass.{u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max u3 u5, max u2 u4, max (max (max u2 u3) u4) u5} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (LinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃)) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max u3 u5, max u2 u4} R R (Prod.{u3, u5} M₂ M₄) (Prod.{u2, u4} M M₃) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, max u2 u4, max u3 u5} R R (Prod.{u2, u4} M M₃) (Prod.{u3, u5} M₂ M₄) _inst_1 _inst_1 (Prod.instAddCommMonoidSum.{u2, u4} M M₃ _inst_2 _inst_4) (Prod.instAddCommMonoidSum.{u3, u5} M₂ M₄ _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Prod.module.{u1, u2, u4} R M M₃ _inst_1 _inst_2 _inst_4 module_M module_M₃) (Prod.module.{u1, u3, u5} R M₂ M₄ _inst_1 _inst_3 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₂ module_M₄) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.skewProd.{u1, u2, u3, u4, u5} R M M₂ M₃ M₄ _inst_1 _inst_2 _inst_3 _inst_4 _inst_5 module_M module_M₂ module_M₃ module_M₄ e₁ e₂ f)) x) (Prod.mk.{u2, u4} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) (Prod.fst.{u3, u5} M₂ M₄ x)) ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (a : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x)) (FunLike.coe.{max (succ u4) (succ u5), succ u5, succ u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) M₄ (fun (_x : M₄) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₄) => M₃) _x) (SMulHomClass.toFunLike.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (SMulZeroClass.toSMul.{u1, u5} R M₄ (AddMonoid.toZero.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribSMul.toSMulZeroClass.{u1, u5} R M₄ (AddMonoid.toAddZeroClass.{u5} M₄ (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5))) (DistribMulAction.toDistribSMul.{u1, u5} R M₄ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄)))) (SMulZeroClass.toSMul.{u1, u4} R M₃ (AddMonoid.toZero.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribSMul.toSMulZeroClass.{u1, u4} R M₃ (AddMonoid.toAddZeroClass.{u4} M₃ (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4)) (DistribMulAction.toDistribSMul.{u1, u4} R M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃)))) (DistribMulActionHomClass.toSMulHomClass.{max u4 u5, u1, u5, u4} (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) R M₄ M₃ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u5} M₄ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5)) (AddCommMonoid.toAddMonoid.{u4} M₃ _inst_4) (Module.toDistribMulAction.{u1, u5} R M₄ _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₄) (Module.toDistribMulAction.{u1, u4} R M₃ _inst_1 _inst_4 module_M₃) (SemilinearMapClass.distribMulActionHomClass.{u1, u5, u4, max u4 u5} R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u5, u4, max u4 u5} R R M₄ M₃ (LinearEquiv.{u1, u1, u5, u4} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₄ M₃ (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃) _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u5, u4} R R M₄ M₃ _inst_1 _inst_1 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) _inst_4 module_M₄ module_M₃ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u4, u5} R R M₃ M₄ _inst_1 _inst_1 _inst_4 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M₃ module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₂) (HSub.hSub.{u5, u5, u5} M₄ ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (a : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) a) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))) M₄ (instHSub.{u5} M₄ (SubNegMonoid.toSub.{u5} M₄ (AddGroup.toSubNegMonoid.{u5} M₄ (AddCommGroup.toAddGroup.{u5} M₄ _inst_5)))) (Prod.snd.{u3, u5} M₂ M₄ x) (FunLike.coe.{max (succ u2) (succ u5), succ u2, succ u5} (LinearMap.{u1, u1, u2, u5} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) M M₄ _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄) M (fun (_x : M) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6178 : M) => M₄) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u2, u5} R R M M₄ _inst_1 _inst_1 _inst_2 (AddCommGroup.toAddCommMonoid.{u5} M₄ _inst_5) module_M module_M₄ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1))) f (FunLike.coe.{max (succ u2) (succ u3), succ u3, succ u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) M₂ (fun (_x : M₂) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : M₂) => M) _x) (SMulHomClass.toFunLike.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (SMulZeroClass.toSMul.{u1, u3} R M₂ (AddMonoid.toZero.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribSMul.toSMulZeroClass.{u1, u3} R M₂ (AddMonoid.toAddZeroClass.{u3} M₂ (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3)) (DistribMulAction.toDistribSMul.{u1, u3} R M₂ (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂)))) (SMulZeroClass.toSMul.{u1, u2} R M (AddMonoid.toZero.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribSMul.toSMulZeroClass.{u1, u2} R M (AddMonoid.toAddZeroClass.{u2} M (AddCommMonoid.toAddMonoid.{u2} M _inst_2)) (DistribMulAction.toDistribSMul.{u1, u2} R M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M)))) (DistribMulActionHomClass.toSMulHomClass.{max u2 u3, u1, u3, u2} (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) R M₂ M (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R _inst_1)) (AddCommMonoid.toAddMonoid.{u3} M₂ _inst_3) (AddCommMonoid.toAddMonoid.{u2} M _inst_2) (Module.toDistribMulAction.{u1, u3} R M₂ _inst_1 _inst_3 module_M₂) (Module.toDistribMulAction.{u1, u2} R M _inst_1 _inst_2 module_M) (SemilinearMapClass.distribMulActionHomClass.{u1, u3, u2, max u2 u3} R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_3 _inst_2 module_M₂ module_M (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, u3, u2, max u2 u3} R R M₂ M (LinearEquiv.{u1, u1, u3, u2} R R _inst_1 _inst_1 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) M₂ M _inst_3 _inst_2 module_M₂ module_M) _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, u3, u2} R R M₂ M _inst_1 _inst_1 _inst_3 _inst_2 module_M₂ module_M (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1)))))) (LinearEquiv.symm.{u1, u1, u2, u3} R R M M₂ _inst_1 _inst_1 _inst_2 _inst_3 module_M module_M₂ (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R _inst_1)) (RingHomInvPair.ids.{u1} R _inst_1) (RingHomInvPair.ids.{u1} R _inst_1) e₁) (Prod.fst.{u3, u5} M₂ M₄ x))))))
+Case conversion may be inaccurate. Consider using '#align linear_equiv.skew_prod_symm_apply LinearEquiv.skewProd_symm_applyₓ'. -/
 @[simp]
 theorem skewProd_symm_apply (f : M →ₗ[R] M₄) (x) :
     (e₁.skewProd e₂ f).symm x = (e₁.symm x.1, e₂.symm (x.2 - f (e₁.symm x.1))) :=
@@ -826,6 +1434,7 @@ variable [AddCommGroup M] [AddCommGroup M₂] [AddCommGroup M₃]
 
 variable [Module R M] [Module R M₂] [Module R M₃]
 
+#print LinearMap.range_prod_eq /-
 /-- If the union of the kernels `ker f` and `ker g` spans the domain, then the range of
 `prod f g` is equal to the product of `range f` and `range g`. -/
 theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f ⊔ ker g = ⊤) :
@@ -842,6 +1451,7 @@ theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f 
   · simp only [mem_ker.mp hx', map_add, zero_add]
   · simp [← eq_sub_iff_add_eq.1 H, map_add, add_left_inj, self_eq_add_right, mem_ker.mp hy']
 #align linear_map.range_prod_eq LinearMap.range_prod_eq
+-/
 
 end LinearMap
 
@@ -876,26 +1486,24 @@ variable {N : Type _} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N
 
 open Function
 
+#print LinearMap.tunnelAux /-
 /-- An auxiliary construction for `tunnel`.
 The composition of `f`, followed by the isomorphism back to `K`,
 followed by the inclusion of this submodule back into `M`. -/
 def tunnelAux (f : M × N →ₗ[R] M) (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : M × N →ₗ[R] M :=
   (Kφ.1.Subtype.comp Kφ.2.symm.toLinearMap).comp f
 #align linear_map.tunnel_aux LinearMap.tunnelAux
+-/
 
+#print LinearMap.tunnelAux_injective /-
 theorem tunnelAux_injective (f : M × N →ₗ[R] M) (i : Injective f)
     (Kφ : ΣK : Submodule R M, K ≃ₗ[R] M) : Injective (tunnelAux f Kφ) :=
   (Subtype.val_injective.comp Kφ.2.symm.Injective).comp i
 #align linear_map.tunnel_aux_injective LinearMap.tunnelAux_injective
+-/
 
 noncomputable section
 
-/- warning: linear_map.tunnel' -> LinearMap.tunnel' is a dubious translation:
-lean 3 declaration is
-  forall {R : Type.{u1}} {M : Type.{u2}} [_inst_1 : Ring.{u1} R] {N : Type.{u3}} [_inst_2 : AddCommGroup.{u2} M] [_inst_3 : Module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2)] [_inst_4 : AddCommGroup.{u3} N] [_inst_5 : Module.{u1, u3} R N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)] (f : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3), (Function.Injective.{max (succ u2) (succ u3), succ u2} (Prod.{u2, u3} M N) M (coeFn.{max (succ (max u2 u3)) (succ u2), max (succ (max u2 u3)) (succ u2)} (LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) (fun (_x : LinearMap.{u1, u1, max u2 u3, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Prod.{u2, u3} M N) M (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3) => (Prod.{u2, u3} M N) -> M) (LinearMap.hasCoeToFun.{u1, u1, max u2 u3, u2} R R (Prod.{u2, u3} M N) M (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (Prod.addCommMonoid.{u2, u3} M N (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4)) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Prod.module.{u1, u2, u3} R M N (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (AddCommGroup.toAddCommMonoid.{u3} N _inst_4) _inst_3 _inst_5) _inst_3 (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f)) -> Nat -> (Sigma.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) (fun (K : Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) => LinearEquiv.{u1, u1, u2, u2} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (LinearMap.Tunnel'._proof_1.{u1} R _inst_1) (LinearMap.Tunnel'._proof_2.{u1} R _inst_1) (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3) M (Submodule.setLike.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3)) K) M (Submodule.addCommMonoid.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) (Submodule.module.{u1, u2} R M (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} M _inst_2) _inst_3 K) _inst_3))
-but is expected to have type
-  PUnit.{max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))}
-Case conversion may be inaccurate. Consider using '#align linear_map.tunnel' LinearMap.tunnel'ₓ'. -/
 -- Even though we have `noncomputable theory`,
 -- we get an error without another `noncomputable` here.
 /-- Auxiliary definition for `tunnel`. -/
@@ -905,8 +1513,9 @@ noncomputable def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → 
     ⟨(Submodule.fst R M N).map (tunnelAux f (tunnel' n)),
       ((Submodule.fst R M N).equivMapOfInjective _ (tunnelAux_injective f i (tunnel' n))).symm.trans
         (Submodule.fstEquiv R M N)⟩
-#align linear_map.tunnel' LinearMap.tunnel'
+#align linear_map.tunnel' LinearMap.tunnel'ₓ
 
+#print LinearMap.tunnel /-
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a nested sequence of submodules
 all isomorphic to `M`.
 -/
@@ -917,20 +1526,26 @@ def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)
       rw [Submodule.map_comp, Submodule.map_comp]
       apply Submodule.map_subtype_le⟩
 #align linear_map.tunnel LinearMap.tunnel
+-/
 
+#print LinearMap.tailing /-
 /-- Give an injective map `f : M × N →ₗ[R] M` we can find a sequence of submodules
 all isomorphic to `N`.
 -/
 def tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : Submodule R M :=
   (Submodule.snd R M N).map (tunnelAux f (tunnel' f i n))
 #align linear_map.tailing LinearMap.tailing
+-/
 
+#print LinearMap.tailingLinearEquiv /-
 /-- Each `tailing f i n` is a copy of `N`. -/
 def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : tailing f i n ≃ₗ[R] N :=
   ((Submodule.snd R M N).equivMapOfInjective _ (tunnelAux_injective f i (tunnel' f i n))).symm.trans
     (Submodule.sndEquiv R M N)
 #align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquiv
+-/
 
+#print LinearMap.tailing_le_tunnel /-
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ≤ (tunnel f i n).ofDual :=
   by
@@ -938,7 +1553,9 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
   rw [Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
+-/
 
+#print LinearMap.tailing_disjoint_tunnel_succ /-
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailing f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -948,7 +1565,9 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
     Submodule.comap_map_eq_of_injective (tunnel_aux_injective _ i _), inf_comm,
     Submodule.fst_inf_snd, Submodule.map_bot]
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
+-/
 
+#print LinearMap.tailing_sup_tunnel_succ_le_tunnel /-
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailing f i n ⊔ (tunnel f i (n + 1)).ofDual ≤ (tunnel f i n).ofDual :=
   by
@@ -956,22 +1575,30 @@ theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injectiv
   rw [← Submodule.map_sup, sup_comm, Submodule.fst_sup_snd, Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_sup_tunnel_succ_le_tunnel LinearMap.tailing_sup_tunnel_succ_le_tunnel
+-/
 
+#print LinearMap.tailings /-
 /-- The supremum of all the copies of `N` found inside the tunnel. -/
 def tailings (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → Submodule R M :=
   partialSups (tailing f i)
 #align linear_map.tailings LinearMap.tailings
+-/
 
+#print LinearMap.tailings_zero /-
 @[simp]
 theorem tailings_zero (f : M × N →ₗ[R] M) (i : Injective f) : tailings f i 0 = tailing f i 0 := by
   simp [tailings]
 #align linear_map.tailings_zero LinearMap.tailings_zero
+-/
 
+#print LinearMap.tailings_succ /-
 @[simp]
 theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     tailings f i (n + 1) = tailings f i n ⊔ tailing f i (n + 1) := by simp [tailings]
 #align linear_map.tailings_succ LinearMap.tailings_succ
+-/
 
+#print LinearMap.tailings_disjoint_tunnel /-
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tunnel f i (n + 1)).ofDual :=
   by
@@ -984,11 +1611,14 @@ theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n :
     apply Disjoint.mono_right _ ih
     apply tailing_sup_tunnel_succ_le_tunnel
 #align linear_map.tailings_disjoint_tunnel LinearMap.tailings_disjoint_tunnel
+-/
 
+#print LinearMap.tailings_disjoint_tailing /-
 theorem tailings_disjoint_tailing (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
     Disjoint (tailings f i n) (tailing f i (n + 1)) :=
   Disjoint.mono_right (tailing_le_tunnel f i _) (tailings_disjoint_tunnel f i _)
 #align linear_map.tailings_disjoint_tailing LinearMap.tailings_disjoint_tailing
+-/
 
 end Tunnel
 
@@ -997,6 +1627,7 @@ section Graph
 variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommGroup M₃] [AddCommGroup M₄]
   [Module R M] [Module R M₂] [Module R M₃] [Module R M₄] (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄)
 
+#print LinearMap.graph /-
 /-- Graph of a linear map. -/
 def graph : Submodule R (M × M₂)
     where
@@ -1010,24 +1641,31 @@ def graph : Submodule R (M × M₂)
     change _ • _ = f (_ • _)
     rw [map_smul, hx]
 #align linear_map.graph LinearMap.graph
+-/
 
+#print LinearMap.mem_graph_iff /-
 @[simp]
 theorem mem_graph_iff (x : M × M₂) : x ∈ f.graph ↔ x.2 = f x.1 :=
   Iff.rfl
 #align linear_map.mem_graph_iff LinearMap.mem_graph_iff
+-/
 
+#print LinearMap.graph_eq_ker_coprod /-
 theorem graph_eq_ker_coprod : g.graph = ((-g).coprod LinearMap.id).ker :=
   by
   ext x
   change _ = _ ↔ -g x.1 + x.2 = _
   rw [add_comm, add_neg_eq_zero]
 #align linear_map.graph_eq_ker_coprod LinearMap.graph_eq_ker_coprod
+-/
 
+#print LinearMap.graph_eq_range_prod /-
 theorem graph_eq_range_prod : f.graph = (LinearMap.id.Prod f).range :=
   by
   ext x
   exact ⟨fun hx => ⟨x.1, Prod.ext rfl hx.symm⟩, fun ⟨u, hu⟩ => hu ▸ rfl⟩
 #align linear_map.graph_eq_range_prod LinearMap.graph_eq_range_prod
+-/
 
 end Graph
 

Changes in mathlib4

mathlib3
mathlib4
chore: Rename mul-div cancellation lemmas (#11530)

Lemma names around cancellation of multiplication and division are a mess.

This PR renames a handful of them according to the following table (each big row contains the multiplicative statement, then the three rows contain the GroupWithZero lemma name, the Group lemma, the AddGroup lemma name).

| Statement | New name | Old name | |

Diff
@@ -878,7 +878,7 @@ theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f 
   have : y - x ∈ ker f ⊔ ker g := by simp only [h, mem_top]
   rcases mem_sup.1 this with ⟨x', hx', y', hy', H⟩
   refine' ⟨x' + x, _, _⟩
-  · rwa [add_sub_cancel]
+  · rwa [add_sub_cancel_right]
   · simp [← eq_sub_iff_add_eq.1 H, map_add, add_left_inj, self_eq_add_right, mem_ker.mp hy']
 #align linear_map.range_prod_eq LinearMap.range_prod_eq
 
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -402,7 +402,6 @@ variable {R M M₂ M₃ M₄}
 section map_mul
 
 variable {A : Type*} [NonUnitalNonAssocSemiring A] [Module R A]
-
 variable {B : Type*} [NonUnitalNonAssocSemiring B] [Module R B]
 
 theorem inl_map_mul (a₁ a₂ : A) :
@@ -424,11 +423,8 @@ end Prod
 namespace LinearMap
 
 variable (R M M₂)
-
 variable [CommSemiring R]
-
 variable [AddCommMonoid M] [AddCommMonoid M₂]
-
 variable [Module R M] [Module R M₂]
 
 /-- `LinearMap.prodMap` as an `AlgHom` -/
@@ -542,9 +538,7 @@ namespace Submodule
 open LinearMap
 
 variable [Semiring R]
-
 variable [AddCommMonoid M] [AddCommMonoid M₂]
-
 variable [Module R M] [Module R M₂]
 
 theorem sup_eq_range (p q : Submodule R M) : p ⊔ q = range (p.subtype.coprod q.subtype) :=
@@ -801,13 +795,9 @@ end
 section
 
 variable [Semiring R]
-
 variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
-
 variable {module_M : Module R M} {module_M₂ : Module R M₂}
-
 variable {module_M₃ : Module R M₃} {module_M₄ : Module R M₄}
-
 variable (e₁ : M ≃ₗ[R] M₂) (e₂ : M₃ ≃ₗ[R] M₄)
 
 /-- Product of linear equivalences; the maps come from `Equiv.prodCongr`. -/
@@ -920,7 +910,6 @@ noncomputable section Tunnel
 -- (This doesn't work over a semiring: we need to use that `Submodule R M` is a modular lattice,
 -- which requires cancellation.)
 variable [Ring R]
-
 variable {N : Type*} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
 
 open Function
chore: classify was tidy porting notes (#10937)

Classifies by adding issue number (#10936) to porting notes claiming anything semantically equivalent to:

  • "used to be tidy"
  • "was tidy "
Diff
@@ -632,14 +632,14 @@ def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M where
 #align submodule.fst_equiv Submodule.fstEquiv
 
 theorem fst_map_fst : (Submodule.fst R M M₂).map (LinearMap.fst R M M₂) = ⊤ := by
-  -- Porting note: was `tidy`
+  -- Porting note (#10936): was `tidy`
   rw [eq_top_iff]; rintro x -
   simp only [fst, comap_bot, mem_map, mem_ker, snd_apply, fst_apply,
     Prod.exists, exists_eq_left, exists_eq]
 #align submodule.fst_map_fst Submodule.fst_map_fst
 
 theorem fst_map_snd : (Submodule.fst R M M₂).map (LinearMap.snd R M M₂) = ⊥ := by
-  -- Porting note: was `tidy`
+  -- Porting note (#10936): was `tidy`
   rw [eq_bot_iff]; intro x
   simp only [fst, comap_bot, mem_map, mem_ker, snd_apply, eq_comm, Prod.exists, exists_eq_left,
     exists_const, mem_bot, imp_self]
@@ -668,14 +668,14 @@ def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂ where
 #align submodule.snd_equiv Submodule.sndEquiv
 
 theorem snd_map_fst : (Submodule.snd R M M₂).map (LinearMap.fst R M M₂) = ⊥ := by
-  -- Porting note: was `tidy`
+  -- Porting note (#10936): was `tidy`
   rw [eq_bot_iff]; intro x
   simp only [snd, comap_bot, mem_map, mem_ker, fst_apply, eq_comm, Prod.exists, exists_eq_left,
     exists_const, mem_bot, imp_self]
 #align submodule.snd_map_fst Submodule.snd_map_fst
 
 theorem snd_map_snd : (Submodule.snd R M M₂).map (LinearMap.snd R M M₂) = ⊤ := by
-  -- Porting note: was `tidy`
+  -- Porting note (#10936): was `tidy`
   rw [eq_top_iff]; rintro x -
   simp only [snd, comap_bot, mem_map, mem_ker, snd_apply, fst_apply,
     Prod.exists, exists_eq_right, exists_eq]
@@ -691,7 +691,7 @@ theorem fst_sup_snd : Submodule.fst R M M₂ ⊔ Submodule.snd R M M₂ = ⊤ :=
 #align submodule.fst_sup_snd Submodule.fst_sup_snd
 
 theorem fst_inf_snd : Submodule.fst R M M₂ ⊓ Submodule.snd R M M₂ = ⊥ := by
-  -- Porting note: was `tidy`
+  -- Porting note (#10936): was `tidy`
   rw [eq_bot_iff]; rintro ⟨x, y⟩
   simp only [fst, comap_bot, snd, ge_iff_le, mem_inf, mem_ker, snd_apply, fst_apply, mem_bot,
     Prod.mk_eq_zero, and_comm, imp_self]
chore: Move LinearMap.ker to a new file (#10233)

This shortens Mathlib.LinearAlgebra.Basic, which is both longer than we like and doesn't have a clear scope.

Diff
@@ -3,9 +3,10 @@ Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
 -/
+import Mathlib.Algebra.Algebra.Prod
+import Mathlib.LinearAlgebra.Basic
 import Mathlib.LinearAlgebra.Span
 import Mathlib.Order.PartialSups
-import Mathlib.Algebra.Algebra.Prod
 
 #align_import linear_algebra.prod from "leanprover-community/mathlib"@"cd391184c85986113f8c00844cfe6dda1d34be3d"
 
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
@@ -882,7 +882,8 @@ theorem range_prod_eq {f : M →ₗ[R] M₂} {g : M →ₗ[R] M₃} (h : ker f 
   simp only [SetLike.le_def, prod_apply, mem_range, SetLike.mem_coe, mem_prod, exists_imp, and_imp,
     Prod.forall, Pi.prod]
   rintro _ _ x rfl y rfl
-  simp only [Prod.mk.inj_iff, ← sub_mem_ker_iff]
+  -- Note: #8386 had to specify `(f := f)`
+  simp only [Prod.mk.inj_iff, ← sub_mem_ker_iff (f := f)]
   have : y - x ∈ ker f ⊔ ker g := by simp only [h, mem_top]
   rcases mem_sup.1 this with ⟨x', hx', y', hy', H⟩
   refine' ⟨x' + x, _, _⟩
@@ -948,7 +949,8 @@ def tunnel' (f : M × N →ₗ[R] M) (i : Injective f) : ℕ → ΣK : Submodule
 all isomorphic to `M`.
 -/
 def tunnel (f : M × N →ₗ[R] M) (i : Injective f) : ℕ →o (Submodule R M)ᵒᵈ :=
-  ⟨fun n => OrderDual.toDual (tunnel' f i n).1,
+  -- Note: the hint `(α := _)` had to be added in #8386
+  ⟨fun n => OrderDual.toDual (α := Submodule R M) (tunnel' f i n).1,
     monotone_nat_of_le_succ fun n => by
       dsimp [tunnel', tunnelAux]
       rw [Submodule.map_comp, Submodule.map_comp]
@@ -969,14 +971,14 @@ def tailingLinearEquiv (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) : ta
 #align linear_map.tailing_linear_equiv LinearMap.tailingLinearEquiv
 
 theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    tailing f i n ≤ OrderDual.ofDual (tunnel f i n) := by
+    tailing f i n ≤ OrderDual.ofDual (α := Submodule R M) (tunnel f i n) := by
   dsimp [tailing, tunnelAux]
   rw [Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
 
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    Disjoint (tailing f i n) (OrderDual.ofDual <| tunnel f i (n + 1)) := by
+    Disjoint (tailing f i n) (OrderDual.ofDual (α := Submodule R M) <| tunnel f i (n + 1)) := by
   rw [disjoint_iff]
   dsimp [tailing, tunnel, tunnel']
   erw [Submodule.map_inf_eq_map_inf_comap,
@@ -985,8 +987,8 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
 
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    tailing f i n ⊔ (OrderDual.ofDual <| tunnel f i (n + 1)) ≤
-      (OrderDual.ofDual <| tunnel f i n) := by
+    tailing f i n ⊔ (OrderDual.ofDual (α := Submodule R M) $ tunnel f i (n + 1)) ≤
+      (OrderDual.ofDual (α := Submodule R M) <| tunnel f i n) := by
   dsimp [tailing, tunnel, tunnel', tunnelAux]
   erw [← Submodule.map_sup, sup_comm, Submodule.fst_sup_snd, Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
@@ -1008,7 +1010,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 #align linear_map.tailings_succ LinearMap.tailings_succ
 
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    Disjoint (tailings f i n) (OrderDual.ofDual <| tunnel f i (n + 1)) := by
+    Disjoint (tailings f i n) (OrderDual.ofDual (α := Submodule R M) <| tunnel f i (n + 1)) := by
   induction' n with n ih
   · simp only [tailings_zero]
     apply tailing_disjoint_tunnel_succ
chore(*): replace $ with <| (#9319)

See Zulip thread for the discussion.

Diff
@@ -449,7 +449,7 @@ theorem range_coprod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) : range (f
   Submodule.ext fun x => by simp [mem_sup]
 #align linear_map.range_coprod LinearMap.range_coprod
 
-theorem isCompl_range_inl_inr : IsCompl (range $ inl R M M₂) (range $ inr R M M₂) := by
+theorem isCompl_range_inl_inr : IsCompl (range <| inl R M M₂) (range <| inr R M M₂) := by
   constructor
   · rw [disjoint_def]
     rintro ⟨_, _⟩ ⟨x, hx⟩ ⟨y, hy⟩
@@ -462,11 +462,11 @@ theorem isCompl_range_inl_inr : IsCompl (range $ inl R M M₂) (range $ inr R M
     simp
 #align linear_map.is_compl_range_inl_inr LinearMap.isCompl_range_inl_inr
 
-theorem sup_range_inl_inr : (range $ inl R M M₂) ⊔ (range $ inr R M M₂) = ⊤ :=
+theorem sup_range_inl_inr : (range <| inl R M M₂) ⊔ (range <| inr R M M₂) = ⊤ :=
   IsCompl.sup_eq_top isCompl_range_inl_inr
 #align linear_map.sup_range_inl_inr LinearMap.sup_range_inl_inr
 
-theorem disjoint_inl_inr : Disjoint (range $ inl R M M₂) (range $ inr R M M₂) := by
+theorem disjoint_inl_inr : Disjoint (range <| inl R M M₂) (range <| inr R M M₂) := by
   simp (config := { contextual := true }) [disjoint_def, @eq_comm M 0, @eq_comm M₂ 0]
 #align linear_map.disjoint_inl_inr LinearMap.disjoint_inl_inr
 
@@ -976,7 +976,7 @@ theorem tailing_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 #align linear_map.tailing_le_tunnel LinearMap.tailing_le_tunnel
 
 theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    Disjoint (tailing f i n) (OrderDual.ofDual $ tunnel f i (n + 1)) := by
+    Disjoint (tailing f i n) (OrderDual.ofDual <| tunnel f i (n + 1)) := by
   rw [disjoint_iff]
   dsimp [tailing, tunnel, tunnel']
   erw [Submodule.map_inf_eq_map_inf_comap,
@@ -985,8 +985,8 @@ theorem tailing_disjoint_tunnel_succ (f : M × N →ₗ[R] M) (i : Injective f)
 #align linear_map.tailing_disjoint_tunnel_succ LinearMap.tailing_disjoint_tunnel_succ
 
 theorem tailing_sup_tunnel_succ_le_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    tailing f i n ⊔ (OrderDual.ofDual $ tunnel f i (n + 1)) ≤
-      (OrderDual.ofDual $ tunnel f i n) := by
+    tailing f i n ⊔ (OrderDual.ofDual <| tunnel f i (n + 1)) ≤
+      (OrderDual.ofDual <| tunnel f i n) := by
   dsimp [tailing, tunnel, tunnel', tunnelAux]
   erw [← Submodule.map_sup, sup_comm, Submodule.fst_sup_snd, Submodule.map_comp, Submodule.map_comp]
   apply Submodule.map_subtype_le
@@ -1008,7 +1008,7 @@ theorem tailings_succ (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
 #align linear_map.tailings_succ LinearMap.tailings_succ
 
 theorem tailings_disjoint_tunnel (f : M × N →ₗ[R] M) (i : Injective f) (n : ℕ) :
-    Disjoint (tailings f i n) (OrderDual.ofDual $ tunnel f i (n + 1)) := by
+    Disjoint (tailings f i n) (OrderDual.ofDual <| tunnel f i (n + 1)) := by
   induction' n with n ih
   · simp only [tailings_zero]
     apply tailing_disjoint_tunnel_succ
feat(RingTheory/Coalgebra): product of coalgebras (#8822)

This also splits out a CoalgebraStruct typeclass, to allow defining the operators and their definitional properties before committing to proving coassociativity.

These proofs are extremely painful, as you're fighting associativity all the time (and LinearMap.comp is very verbose in the goal view)

Diff
@@ -172,6 +172,14 @@ theorem ker_fst : ker (fst R M M₂) = range (inr R M M₂) :=
   Eq.symm <| range_inr R M M₂
 #align linear_map.ker_fst LinearMap.ker_fst
 
+@[simp] theorem fst_comp_inl : fst R M M₂ ∘ₗ inl R M M₂ = id := rfl
+
+@[simp] theorem snd_comp_inl : snd R M M₂ ∘ₗ inl R M M₂ = 0 := rfl
+
+@[simp] theorem fst_comp_inr : fst R M M₂ ∘ₗ inr R M M₂ = 0 := rfl
+
+@[simp] theorem snd_comp_inr : snd R M M₂ ∘ₗ inr R M M₂ = id := rfl
+
 end
 
 @[simp]
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -759,36 +759,6 @@ theorem snd_comp_prodComm :
 
 end prodComm
 
-section SkewSwap
-
-variable (R M N)
-variable [Semiring R]
-variable [AddCommGroup M] [AddCommGroup N]
-variable [Module R M] [Module R N]
-
-/-- The map `(x, y) ↦ (-y, x)` as a linear equivalence. -/
-protected def skewSwap : (M × N) ≃ₗ[R] (N × M) where
-  toFun x := (-x.2, x.1)
-  invFun x := (x.2, -x.1)
-  map_add' _ _ := by
-    simp [add_comm]
-  map_smul' _ _ := by
-    simp
-  left_inv _ := by
-    simp
-  right_inv _ := by
-    simp
-
-variable {R M N}
-
-@[simp]
-theorem skewSwap_apply (x : M × N) : LinearEquiv.skewSwap R M N x = (-x.2, x.1) := rfl
-
-@[simp]
-theorem skewSwap_symm_apply (x : N × M) : (LinearEquiv.skewSwap R M N).symm x = (x.2, -x.1) := rfl
-
-end SkewSwap
-
 section
 
 variable (R M M₂ M₃ M₄)
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -759,6 +759,36 @@ theorem snd_comp_prodComm :
 
 end prodComm
 
+section SkewSwap
+
+variable (R M N)
+variable [Semiring R]
+variable [AddCommGroup M] [AddCommGroup N]
+variable [Module R M] [Module R N]
+
+/-- The map `(x, y) ↦ (-y, x)` as a linear equivalence. -/
+protected def skewSwap : (M × N) ≃ₗ[R] (N × M) where
+  toFun x := (-x.2, x.1)
+  invFun x := (x.2, -x.1)
+  map_add' _ _ := by
+    simp [add_comm]
+  map_smul' _ _ := by
+    simp
+  left_inv _ := by
+    simp
+  right_inv _ := by
+    simp
+
+variable {R M N}
+
+@[simp]
+theorem skewSwap_apply (x : M × N) : LinearEquiv.skewSwap R M N x = (-x.2, x.1) := rfl
+
+@[simp]
+theorem skewSwap_symm_apply (x : N × M) : (LinearEquiv.skewSwap R M N).symm x = (x.2, -x.1) := rfl
+
+end SkewSwap
+
 section
 
 variable (R M M₂ M₃ M₄)
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

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

Diff
@@ -759,36 +759,6 @@ theorem snd_comp_prodComm :
 
 end prodComm
 
-section SkewSwap
-
-variable (R M N)
-variable [Semiring R]
-variable [AddCommGroup M] [AddCommGroup N]
-variable [Module R M] [Module R N]
-
-/-- The map `(x, y) ↦ (-y, x)` as a linear equivalence. -/
-protected def skewSwap : (M × N) ≃ₗ[R] (N × M) where
-  toFun x := (-x.2, x.1)
-  invFun x := (x.2, -x.1)
-  map_add' _ _ := by
-    simp [add_comm]
-  map_smul' _ _ := by
-    simp
-  left_inv _ := by
-    simp
-  right_inv _ := by
-    simp
-
-variable {R M N}
-
-@[simp]
-theorem skewSwap_apply (x : M × N) : LinearEquiv.skewSwap R M N x = (-x.2, x.1) := rfl
-
-@[simp]
-theorem skewSwap_symm_apply (x : N × M) : (LinearEquiv.skewSwap R M N).symm x = (x.2, -x.1) := rfl
-
-end SkewSwap
-
 section
 
 variable (R M M₂ M₃ M₄)
feat(Analysis/InnerProductSpace/LinearPMap): the adjoint is closed (#6537)

Define the graph of the adjoint and prove that the adjoint operator is always closed.

Diff
@@ -759,6 +759,36 @@ theorem snd_comp_prodComm :
 
 end prodComm
 
+section SkewSwap
+
+variable (R M N)
+variable [Semiring R]
+variable [AddCommGroup M] [AddCommGroup N]
+variable [Module R M] [Module R N]
+
+/-- The map `(x, y) ↦ (-y, x)` as a linear equivalence. -/
+protected def skewSwap : (M × N) ≃ₗ[R] (N × M) where
+  toFun x := (-x.2, x.1)
+  invFun x := (x.2, -x.1)
+  map_add' _ _ := by
+    simp [add_comm]
+  map_smul' _ _ := by
+    simp
+  left_inv _ := by
+    simp
+  right_inv _ := by
+    simp
+
+variable {R M N}
+
+@[simp]
+theorem skewSwap_apply (x : M × N) : LinearEquiv.skewSwap R M N x = (-x.2, x.1) := rfl
+
+@[simp]
+theorem skewSwap_symm_apply (x : N × M) : (LinearEquiv.skewSwap R M N).symm x = (x.2, -x.1) := rfl
+
+end SkewSwap
+
 section
 
 variable (R M M₂ M₃ M₄)
style: a linter for four spaces (#7283)

Includes an auto-fix feature with the --fix flag so that spacing suggestions will be automatically applied in review also.

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

Diff
@@ -607,7 +607,8 @@ def fst : Submodule R (M × M₂) :=
 
 /-- `M` as a submodule of `M × N` is isomorphic to `M`. -/
 @[simps]
-def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M where -- Porting note: proofs were `tidy` or `simp`
+def fstEquiv : Submodule.fst R M M₂ ≃ₗ[R] M where
+  -- Porting note: proofs were `tidy` or `simp`
   toFun x := x.1.1
   invFun m := ⟨⟨m, 0⟩, by simp only [fst, comap_bot, mem_ker, snd_apply]⟩
   map_add' := by simp only [AddSubmonoid.coe_add, coe_toAddSubmonoid, Prod.fst_add, Subtype.forall,
chore: exactly 4 spaces in theorems (#7328)

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

Diff
@@ -642,7 +642,8 @@ def snd : Submodule R (M × M₂) :=
 
 /-- `N` as a submodule of `M × N` is isomorphic to `N`. -/
 @[simps]
-def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂ where -- Porting note: proofs were `tidy` or `simp`
+def sndEquiv : Submodule.snd R M M₂ ≃ₗ[R] M₂ where
+  -- Porting note: proofs were `tidy` or `simp`
   toFun x := x.1.2
   invFun n := ⟨⟨0, n⟩, by simp only [snd, comap_bot, mem_ker, fst_apply]⟩
   map_add' := by simp only [AddSubmonoid.coe_add, coe_toAddSubmonoid, Prod.snd_add, Subtype.forall,
chore: cleanup Mathlib.Init.Data.Prod (#6972)

Removing from Mathlib.Init.Data.Prod from the early parts of the import hierarchy.

While at it, remove unnecessary uses of Prod.mk.eta across the library.

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

Diff
@@ -275,7 +275,7 @@ def coprodEquiv [Module S M₃] [SMulCommClass R S M₃] :
     where
   toFun f := f.1.coprod f.2
   invFun f := (f.comp (inl _ _ _), f.comp (inr _ _ _))
-  left_inv f := by simp only [Prod.mk.eta, coprod_inl, coprod_inr]
+  left_inv f := by simp only [coprod_inl, coprod_inr]
   right_inv f := by simp only [← comp_coprod, comp_id, coprod_inl_inr]
   map_add' a b := by
     ext
@@ -330,12 +330,12 @@ theorem ker_prodMap (f : M →ₗ[R] M₂) (g : M₃ →ₗ[R] M₄) :
 
 @[simp]
 theorem prodMap_id : (id : M →ₗ[R] M).prodMap (id : M₂ →ₗ[R] M₂) = id :=
-  LinearMap.ext fun _ => Prod.mk.eta
+  rfl
 #align linear_map.prod_map_id LinearMap.prodMap_id
 
 @[simp]
 theorem prodMap_one : (1 : M →ₗ[R] M).prodMap (1 : M₂ →ₗ[R] M₂) = 1 :=
-  LinearMap.ext fun _ => Prod.mk.eta
+  rfl
 #align linear_map.prod_map_one LinearMap.prodMap_one
 
 theorem prodMap_comp (f₁₂ : M →ₗ[R] M₂) (f₂₃ : M₂ →ₗ[R] M₃) (g₁₂ : M₄ →ₗ[R] M₅)
chore: remove autoImplicit in LinearAlgebra (#6634)

In Mathlib/LinearAlgebra/Dual.lean we also overhaul the universe argument names, as the file switched between two conventions and making up undeclared universe variables.

Mathlib/LinearAlgebra/Prod.lean invented some new variables even though it already had plenty available.

Diff
@@ -33,8 +33,6 @@ It contains theorems relating these to each other, as well as to `Submodule.prod
   - `LinearEquiv.skewProd`
 -/
 
-set_option autoImplicit true
-
 
 universe u v w x y z u' v' w' y'
 
@@ -113,8 +111,8 @@ theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M
 theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id := rfl
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
 
-theorem prod_comp [AddCommMonoid M₁] [Module R M₁] (f : M₁ →ₗ[R] M₂) (g : M₁ →ₗ[R] M₃)
-    (h : M →ₗ[R] M₁) : (f.prod g).comp h = (f.comp h).prod (g.comp h) :=
+theorem prod_comp (f : M₂ →ₗ[R] M₃) (g : M₂ →ₗ[R] M₄)
+    (h : M →ₗ[R] M₂) : (f.prod g).comp h = (f.comp h).prod (g.comp h) :=
   rfl
 
 /-- Taking the product of two maps with the same domain is equivalent to taking the product of
@@ -747,14 +745,14 @@ def prodComm (R M N : Type*) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [M
 
 section prodComm
 
-variable [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N]
+variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [Module R M] [Module R M₂]
 
 theorem fst_comp_prodComm :
-    (LinearMap.fst R N M).comp (prodComm R M N).toLinearMap = (LinearMap.snd R M N) := by
+    (LinearMap.fst R M₂ M).comp (prodComm R M M₂).toLinearMap = (LinearMap.snd R M M₂) := by
   ext <;> simp
 
 theorem snd_comp_prodComm :
-    (LinearMap.snd R N M).comp (prodComm R M N).toLinearMap = (LinearMap.fst R M N) := by
+    (LinearMap.snd R M₂ M).comp (prodComm R M M₂).toLinearMap = (LinearMap.fst R M M₂) := by
   ext <;> simp
 
 end prodComm
fix: disable autoImplicit globally (#6528)

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

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

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

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

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

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

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

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

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

Diff
@@ -33,6 +33,8 @@ It contains theorems relating these to each other, as well as to `Submodule.prod
   - `LinearEquiv.skewProd`
 -/
 
+set_option autoImplicit true
+
 
 universe u v w x y z u' v' w' y'
 
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -38,13 +38,13 @@ universe u v w x y z u' v' w' y'
 
 variable {R : Type u} {K : Type u'} {M : Type v} {V : Type v'} {M₂ : Type w} {V₂ : Type w'}
 variable {M₃ : Type y} {V₃ : Type y'} {M₄ : Type z} {ι : Type x}
-variable {M₅ M₆ : Type _}
+variable {M₅ M₆ : Type*}
 
 section Prod
 
 namespace LinearMap
 
-variable (S : Type _) [Semiring R] [Semiring S]
+variable (S : Type*) [Semiring R] [Semiring S]
 variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
 variable [AddCommMonoid M₅] [AddCommMonoid M₆]
 variable [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
@@ -392,9 +392,9 @@ variable {R M M₂ M₃ M₄}
 
 section map_mul
 
-variable {A : Type _} [NonUnitalNonAssocSemiring A] [Module R A]
+variable {A : Type*} [NonUnitalNonAssocSemiring A] [Module R A]
 
-variable {B : Type _} [NonUnitalNonAssocSemiring B] [Module R B]
+variable {B : Type*} [NonUnitalNonAssocSemiring B] [Module R B]
 
 theorem inl_map_mul (a₁ a₂ : A) :
     LinearMap.inl R A B (a₁ * a₂) = LinearMap.inl R A B a₁ * LinearMap.inl R A B a₂ :=
@@ -504,14 +504,14 @@ theorem range_prod_le (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) :
   exact ⟨⟨x, rfl⟩, ⟨x, rfl⟩⟩
 #align linear_map.range_prod_le LinearMap.range_prod_le
 
-theorem ker_prod_ker_le_ker_coprod {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
+theorem ker_prod_ker_le_ker_coprod {M₂ : Type*} [AddCommGroup M₂] [Module R M₂] {M₃ : Type*}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) :
     (ker f).prod (ker g) ≤ ker (f.coprod g) := by
   rintro ⟨y, z⟩
   simp (config := { contextual := true })
 #align linear_map.ker_prod_ker_le_ker_coprod LinearMap.ker_prod_ker_le_ker_coprod
 
-theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module R M₂] {M₃ : Type _}
+theorem ker_coprod_of_disjoint_range {M₂ : Type*} [AddCommGroup M₂] [Module R M₂] {M₃ : Type*}
     [AddCommGroup M₃] [Module R M₃] (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃)
     (hd : Disjoint (range f) (range g)) : ker (f.coprod g) = (ker f).prod (ker g) := by
   apply le_antisymm _ (ker_prod_ker_le_ker_coprod f g)
@@ -736,7 +736,7 @@ namespace LinearEquiv
 
 /-- Product of modules is commutative up to linear isomorphism. -/
 @[simps apply]
-def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M]
+def prodComm (R M N : Type*) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M]
     [Module R N] : (M × N) ≃ₗ[R] N × M :=
   { AddEquiv.prodComm with
     toFun := Prod.swap
@@ -909,7 +909,7 @@ noncomputable section Tunnel
 -- which requires cancellation.)
 variable [Ring R]
 
-variable {N : Type _} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
+variable {N : Type*} [AddCommGroup M] [Module R M] [AddCommGroup N] [Module R N]
 
 open Function
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2017 Johannes Hölzl. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
-
-! This file was ported from Lean 3 source module linear_algebra.prod
-! leanprover-community/mathlib commit cd391184c85986113f8c00844cfe6dda1d34be3d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.LinearAlgebra.Span
 import Mathlib.Order.PartialSups
 import Mathlib.Algebra.Algebra.Prod
 
+#align_import linear_algebra.prod from "leanprover-community/mathlib"@"cd391184c85986113f8c00844cfe6dda1d34be3d"
+
 /-! ### Products of modules
 
 This file defines constructors for linear maps whose domains or codomains are products.
chore: forward-port leanprover-community/mathlib#19234 (#5887)

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

Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johannes Hölzl, Mario Carneiro, Kevin Buzzard, Yury Kudryashov, Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.prod
-! leanprover-community/mathlib commit bd9851ca476957ea4549eb19b40e7b5ade9428cc
+! leanprover-community/mathlib commit cd391184c85986113f8c00844cfe6dda1d34be3d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -762,6 +762,36 @@ end prodComm
 
 section
 
+variable (R M M₂ M₃ M₄)
+variable [Semiring R]
+variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
+variable [Module R M] [Module R M₂] [Module R M₃] [Module R M₄]
+
+/-- Four-way commutativity of `prod`. The name matches `mul_mul_mul_comm`. -/
+@[simps apply]
+def prodProdProdComm : ((M × M₂) × M₃ × M₄) ≃ₗ[R] (M × M₃) × M₂ × M₄ :=
+  { AddEquiv.prodProdProdComm M M₂ M₃ M₄ with
+    toFun := fun mnmn => ((mnmn.1.1, mnmn.2.1), (mnmn.1.2, mnmn.2.2))
+    invFun := fun mmnn => ((mmnn.1.1, mmnn.2.1), (mmnn.1.2, mmnn.2.2))
+    map_smul' := fun _c _mnmn => rfl }
+#align linear_equiv.prod_prod_prod_comm LinearEquiv.prodProdProdComm
+
+@[simp]
+theorem prodProdProdComm_symm :
+    (prodProdProdComm R M M₂ M₃ M₄).symm = prodProdProdComm R M M₃ M₂ M₄ :=
+  rfl
+#align linear_equiv.prod_prod_prod_comm_symm LinearEquiv.prodProdProdComm_symm
+
+@[simp]
+theorem prodProdProdComm_toAddEquiv :
+    (prodProdProdComm R M M₂ M₃ M₄ : _ ≃+ _) = AddEquiv.prodProdProdComm M M₂ M₃ M₄ :=
+  rfl
+#align linear_equiv.prod_prod_prod_comm_to_add_equiv LinearEquiv.prodProdProdComm_toAddEquiv
+
+end
+
+section
+
 variable [Semiring R]
 
 variable [AddCommMonoid M] [AddCommMonoid M₂] [AddCommMonoid M₃] [AddCommMonoid M₄]
chore: clean up spacing around at and goals (#5387)

Changes are of the form

  • some_tactic at h⊢ -> some_tactic at h ⊢
  • some_tactic at h -> some_tactic at h
Diff
@@ -448,7 +448,7 @@ theorem isCompl_range_inl_inr : IsCompl (range $ inl R M M₂) (range $ inr R M
   constructor
   · rw [disjoint_def]
     rintro ⟨_, _⟩ ⟨x, hx⟩ ⟨y, hy⟩
-    simp only [Prod.ext_iff, inl_apply, inr_apply, mem_bot] at hx hy⊢
+    simp only [Prod.ext_iff, inl_apply, inr_apply, mem_bot] at hx hy ⊢
     exact ⟨hy.1.symm, hx.2.symm⟩
   · rw [codisjoint_iff_le_sup]
     rintro ⟨x, y⟩ -
@@ -519,7 +519,7 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module
     (hd : Disjoint (range f) (range g)) : ker (f.coprod g) = (ker f).prod (ker g) := by
   apply le_antisymm _ (ker_prod_ker_le_ker_coprod f g)
   rintro ⟨y, z⟩ h
-  simp only [mem_ker, mem_prod, coprod_apply] at h⊢
+  simp only [mem_ker, mem_prod, coprod_apply] at h ⊢
   have : f y ∈ (range f) ⊓ (range g) := by
     simp only [true_and_iff, mem_range, mem_inf, exists_apply_eq_apply]
     use -z
chore: delete 2074 references (#4030)
Diff
@@ -829,9 +829,6 @@ end
 
 end LinearEquiv
 
--- Porting note: TODO Erase this line. Needed because we don't have η for classes. (lean4#2074)
-attribute [-instance] Ring.toNonAssocRing
-
 namespace LinearMap
 
 open Submodule
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
@@ -262,8 +262,7 @@ theorem coprod_comp_prod (f : M₂ →ₗ[R] M₄) (g : M₃ →ₗ[R] M₄) (f'
 @[simp]
 theorem coprod_map_prod (f : M →ₗ[R] M₃) (g : M₂ →ₗ[R] M₃) (S : Submodule R M)
     (S' : Submodule R M₂) : (Submodule.prod S S').map (LinearMap.coprod f g) = S.map f ⊔ S'.map g :=
-  SetLike.coe_injective <|
-    by
+  SetLike.coe_injective <| by
     simp only [LinearMap.coprod_apply, Submodule.coe_sup, Submodule.map_coe]
     rw [← Set.image2_add, Set.image2_image_left, Set.image2_image_right]
     exact Set.image_prod fun m m₂ => f m + g m₂
@@ -521,8 +520,7 @@ theorem ker_coprod_of_disjoint_range {M₂ : Type _} [AddCommGroup M₂] [Module
   apply le_antisymm _ (ker_prod_ker_le_ker_coprod f g)
   rintro ⟨y, z⟩ h
   simp only [mem_ker, mem_prod, coprod_apply] at h⊢
-  have : f y ∈ (range f) ⊓ (range g) :=
-    by
+  have : f y ∈ (range f) ⊓ (range g) := by
     simp only [true_and_iff, mem_range, mem_inf, exists_apply_eq_apply]
     use -z
     rwa [eq_comm, map_neg, ← sub_eq_zero, sub_neg_eq_add]
@@ -1003,8 +1001,7 @@ variable [Semiring R] [AddCommMonoid M] [AddCommMonoid M₂] [AddCommGroup M₃]
 def graph : Submodule R (M × M₂)
     where
   carrier := { p | p.2 = f p.1 }
-  add_mem' (ha : _ = _) (hb : _ = _) :=
-    by
+  add_mem' (ha : _ = _) (hb : _ = _) := by
     change _ + _ = f (_ + _)
     rw [map_add, ha, hb]
   zero_mem' := Eq.symm (map_zero f)
feat: inverse of LinearPMap (#3527)
Diff
@@ -748,6 +748,20 @@ def prodComm (R M N : Type _) [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [
     map_smul' := fun _r ⟨_m, _n⟩ => rfl }
 #align linear_equiv.prod_comm LinearEquiv.prodComm
 
+section prodComm
+
+variable [Semiring R] [AddCommMonoid M] [AddCommMonoid N] [Module R M] [Module R N]
+
+theorem fst_comp_prodComm :
+    (LinearMap.fst R N M).comp (prodComm R M N).toLinearMap = (LinearMap.snd R M N) := by
+  ext <;> simp
+
+theorem snd_comp_prodComm :
+    (LinearMap.snd R N M).comp (prodComm R M N).toLinearMap = (LinearMap.fst R M N) := by
+  ext <;> simp
+
+end prodComm
+
 section
 
 variable [Semiring R]
feat: port Algebra.Module.Projective (#3335)
Diff
@@ -92,8 +92,7 @@ theorem snd_surjective : Function.Surjective (snd R M M₂) := fun x => ⟨(0, x
 
 /-- The prod of two linear maps is a linear map. -/
 @[simps]
-def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M₃
-    where
+def prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : M →ₗ[R] M₂ × M₃ where
   toFun := Pi.prod f g
   map_add' x y := by simp only [Pi.prod, Prod.mk_add_mk, map_add]
   map_smul' c x := by simp only [Pi.prod, Prod.smul_mk, map_smul, RingHom.id_apply]
@@ -104,28 +103,28 @@ theorem coe_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : ⇑(f.prod g) =
 #align linear_map.coe_prod LinearMap.coe_prod
 
 @[simp]
-theorem fst_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (fst R M₂ M₃).comp (prod f g) = f := by
-  ext; rfl
+theorem fst_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (fst R M₂ M₃).comp (prod f g) = f := rfl
 #align linear_map.fst_prod LinearMap.fst_prod
 
 @[simp]
-theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M₃).comp (prod f g) = g := by
-  ext; rfl
+theorem snd_prod (f : M →ₗ[R] M₂) (g : M →ₗ[R] M₃) : (snd R M₂ M₃).comp (prod f g) = g := rfl
 #align linear_map.snd_prod LinearMap.snd_prod
 
 @[simp]
-theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id :=
-  FunLike.coe_injective Pi.prod_fst_snd
+theorem pair_fst_snd : prod (fst R M M₂) (snd R M M₂) = LinearMap.id := rfl
 #align linear_map.pair_fst_snd LinearMap.pair_fst_snd
 
+theorem prod_comp [AddCommMonoid M₁] [Module R M₁] (f : M₁ →ₗ[R] M₂) (g : M₁ →ₗ[R] M₃)
+    (h : M →ₗ[R] M₁) : (f.prod g).comp h = (f.comp h).prod (g.comp h) :=
+  rfl
+
 /-- Taking the product of two maps with the same domain is equivalent to taking the product of
 their codomains.
 
 See note [bundled maps over different rings] for why separate `R` and `S` semirings are used. -/
 @[simps]
 def prodEquiv [Module S M₂] [Module S M₃] [SMulCommClass R S M₂] [SMulCommClass R S M₃] :
-    ((M →ₗ[R] M₂) × (M →ₗ[R] M₃)) ≃ₗ[S] M →ₗ[R] M₂ × M₃
-    where
+    ((M →ₗ[R] M₂) × (M →ₗ[R] M₃)) ≃ₗ[S] M →ₗ[R] M₂ × M₃ where
   toFun f := f.1.prod f.2
   invFun f := ((fst _ _ _).comp f, (snd _ _ _).comp f)
   left_inv f := by ext <;> rfl
@@ -237,6 +236,12 @@ theorem coprod_inl_inr : coprod (inl R M M₂) (inr R M M₂) = LinearMap.id :=
     simp only [Prod.mk_add_mk, add_zero, id_apply, coprod_apply, inl_apply, inr_apply, zero_add]
 #align linear_map.coprod_inl_inr LinearMap.coprod_inl_inr
 
+theorem coprod_zero_left (g : M₂ →ₗ[R] M₃) : (0 : M →ₗ[R] M₃).coprod g = g.comp (snd R M M₂) :=
+  zero_add _
+
+theorem coprod_zero_right (f : M →ₗ[R] M₃) : f.coprod (0 : M₂ →ₗ[R] M₃) = f.comp (fst R M M₂) :=
+  add_zero _
+
 theorem comp_coprod (f : M₃ →ₗ[R] M₄) (g₁ : M →ₗ[R] M₃) (g₂ : M₂ →ₗ[R] M₃) :
     f.comp (g₁.coprod g₂) = (f.comp g₁).coprod (f.comp g₂) :=
   ext fun x => f.map_add (g₁ x.1) (g₂ x.2)
@@ -295,7 +300,7 @@ Split equality of linear maps from a product into linear maps over each componen
 to apply lemmas specific to `M →ₗ M₃` and `M₂ →ₗ M₃`.
 
 See note [partially-applied ext lemmas]. -/
-@[ext]
+@[ext 1100]
 theorem prod_ext {f g : M × M₂ →ₗ[R] M₃} (hl : f.comp (inl _ _ _) = g.comp (inl _ _ _))
     (hr : f.comp (inr _ _ _) = g.comp (inr _ _ _)) : f = g :=
   prod_ext_iff.2 ⟨hl, hr⟩
feat: port LinearAlgebra.Prod (#2415)

Dependencies 8 + 372

373 files ported (97.9%)
154907 lines ported (98.0%)
Show graph

The unported dependencies are